Linux内核升级,从2.6.18升级到3.2.14

今日在centos上安装jsp环境,即(Nginx+jdk+mysql+tomcat)发现nginx启动后无法访问,于是查看日志,log如下

[root@AY12122501352213a7156 ~]# cat /var/log/nginx/error.log
2013/01/12 16:29:43 [emerg] 32055#0: eventfd() failed (38: Function not implemented)
2013/01/12 16:29:43 [alert] 32054#0: worker process 32055 exited with fatal code 2 and can not be respawn

到网上以查找,原来内核版本太低,没有Linux-native aio,但是最新版Nginx 需要 Linux-native aio 啊,没办法,升级内核吧。

1、查看当前内核版本

[root@AY12122501352213a7156 ~]# uname -r
2.6.18-164.el5

2、下载linux-3.2.14内核包

[root@AY12122501352213a7156 ~]# wget -c http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.2.14.tar.bz2

[root@AY12122501352213a7156 ~]#tar -jxvf linux-3.2.14.tar.bz2

[root@AY12122501352213a7156 ~]#cd  linux-3.2.14

3、配置内核并安装

 

# yum install ncurses-devel       #升级ncurses

# make mrproper  #清除环境变量,即清除配置文件
# make menuconfig  #在菜单模式下选择需要编译的内核模块

一定要勾选(输入y选中,M编译为模块)

a、General setup→[*] enable deprecated sysfs features to support old userspace tools

b、Processor type and features→HighMemory Support。

c、找到以下选中选项并选中networking support → networking options → network packet filtering framework(netfilter)

(1)Corenetfilter configuration

  • 勾中"Netfilter connection tracking support" -m state相关模块是依赖它的,不选则没有。
  • 将netbios name service protocal support(new) 编译成模块,不然后面升级iptables后启动时会出错
  • 勾中"Netfilter Xtables support (required for ip_tables)"

(2)IP: Netfilter Configuration

  • 将 "IPv4 connection tracking support (require for NAT)" 编译成模块。
  • 勾中IP tables support (required for filtering/masq/NAT) 。
  • 将 "Full NAT" 下的 "MASQUERADE target support" 和 "REDIRECT target support" 编译成模块

(3)其它模块可以根据自己的需要进行选择,若不懂可以参考内核配置手册.

# make clean #确保所有东西均保持最新状态. 
# make bzImage #生成内核文件
# make modules #编译模块
# make modules_install #安装模块
# make install #安装

注意:编译内核的时候可能会出现如下问题:

cp include/linux/hidraw.h /usr/include/linux/
cp include/linux/hid.h /usr/include/linux/
vi samples/hidraw/hid-example.c
(在Linux下编译程序有时会遇到这种问题,这貌似是一个Linux历史遗留问题:
把所有#include <sys/xxx.h>都提到最前面,把#include <linux/xxx.h>的包含放在其后,就可以编译通过了,之所以出现面的问题是存在循环引用所致。)

将13-15行的如下3行移动到33行以后。

     13 #include <linux/types.h>
     14 #include <linux/input.h>
     15 #include <linux/hidraw.h>

     29 #include <sys/ioctl.h>
     30 #include <sys/types.h>
     31 #include <sys/stat.h>
     32 #include <fcntl.h>
     33 #include <unistd.h>

vi /usr/include/linux/input.h

line 647
#define BUS_PCI                 0x01
#define BUS_ISAPNP              0x02
#define BUS_USB                 0x03
#define BUS_HIL                 0x04
#define BUS_BLUETOOTH           0x05
/*以下一行为新增*/
#define BUS_VIRTUAL             0x06

#define BUS_ISA                 0x10
#define BUS_I8042               0x11
#define BUS_XTKBD               0x12
#define BUS_RS232               0x13
#define BUS_GAMEPORT            0x14
#define BUS_PARPORT             0x15
#define BUS_AMIGA               0x16
#define BUS_ADB                 0x17
#define BUS_I2C                 0x18
#define BUS_HOST                0x19
#define BUS_GSC                 0x1A
/*以下两行为新增*/
#define BUS_ATARI               0x1B
#define BUS_SPI                 0x1C  
然后重复(1)上面步骤即可完成

4、vim /etc/grub.conf,将 default=1 改为 default=0

# vi /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS Linux (3.2.2)
root (hd0,0)
kernel /vmlinuz-3.2.2 ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-3.2.2.img
title centos (2.6.32-71.el6.i686)
root (hd0,0)
kernel /vmlinuz-2.6.32-71.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_LVM_LV=VolGroup/lv_root rd_LVM_LV=VolGroup/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us crashkernel=auto rhgb quiet
initrd /initramfs-2.6.32-71.el6.i686.img
 

5、重启系统,并查看内核

# reboot
# uname -r
3.2.14-rt24
6、问题及解决办法
HOSTCC scripts/basic/fixdepHOSTCC
scripts/kconfig/conf.o
*** Unable to find the ncurses libraries or the*** required header files.*** 'make menuconfig' requires the ncurses libraries.****** Install ncurses (ncurses-devel) and try again.***make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1make: *** [menuconfig] Error 2
如果出现上面的错误,记得要安装ncurses-devel,如果你设置了本地源的话,就很简单了。
# yum install ncurses-devel 
注意,如果在编译内核或者模块以及安装过程中有错误或者警告,请把信息放到百度或者google里面查一下,免得重启后出现各种问题。
还有切勿远程升级内核,要升级内核最好现场升级。

转载于:https://www.cnblogs.com/wanghaosoft/archive/2013/01/12/2857766.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【翻译】C#编程语言和JAVA编程语言的比较(下)

原文地址&#xff1a;http://www.25hoursaday.com/CsharpVsJava.html 6、集合 许多有名的编程语言都会包含一个集合框架&#xff0c;框架一般由各种用于保存数据的数据结构和配套的操作对象的算法构成。集合框架的优势是让开发者可以不用写数据结构和排序算法&#xff0c;把精力…

数据库平时错误和使用经验的总结

jdbc里面的操作 jdbc&#xff0c;使用PreparedStatement view sourceprint?001 package com.iflytek.test; 002 003 import java.sql.Connection; 004 import java.sql.DriverManager; 005 import java.sql.PreparedStatement; 006 import java.sql.ResultSet; …

Haproxy 让后端RS记录真实IP

#让RS记录客户端的真实IP#1.先在haproxy.cfg中加入下面参数。listen www ... option forwardfor #如果后端服务器需要获得客户端真实ip需要配置的参数&#xff0c;必须要放在listen模块下#2.如果是apache&#xff0c;则加入下面参数LogFormat “\”%{X-Forward…

物理太难?这些虚拟动图,让你看懂物理

全世界只有3.14 % 的人关注了爆炸吧知识&#xff08;刻度尺的使用&#xff09;&#xff08;测量平均速度实验&#xff09;&#xff08;声音的产生&#xff09;&#xff08;温度计的使用&#xff09;&#xff08;晶体和非晶体的熔化&#xff09;&#xff08;光的反射&#xff09…

linux http 分析工具,技术|httpstat:一个检查网站性能的 curl 统计分析工具

httpstat 是一个 Python 脚本&#xff0c;它以美妙妥善的方式反映了 curl 统计分析&#xff0c;它是一个单一脚本&#xff0c;兼容 Python 3 &#xff0c;在用户的系统上不需要安装额外的软件(依赖)。从本质上来说它是一个 cURL 工具的封装&#xff0c;意味着你可以在 URL 后使…

微软 Ignite 大会 PowerBI 划重点

2021 年 11 月 2 日&#xff0c;微软举办 Ignite 大会&#xff0c;其中关于 Power BI 有哪些重点&#xff0c;带给你了解。摘要Power BI 和 Power Point 将原生整合。Power BI 和 Teams 将更深入整合。Power BI 云端数据集推出自动聚合。Power BI 数据模型推出混合表。Power BI…

周报_2013第03周(2013/01/13-2013/01/19)

2013.01.14 Winform .Net FrameWork 3.5 支持 Client Application Service&#xff08;ASP.NET service: login authentication、roles、profile settings&#xff09;&#xff0c;.Net FrameWork 4.0 不支持。转载于:https://www.cnblogs.com/DancingFish/archive/2013/01/14/…

java序列化的机制和原理

Java序列化的机制和原理有关Java对象的序列化和反序列化也算是Java基础的一部分&#xff0c;下面对Java序列化的机制和原理进行一些介绍。Java序列化算法透析 Serialization&#xff08;序列化&#xff09;是一种将对象以一连串的字节描述的过程&#xff1b;反序列化deserializ…

DirectSound 混音的实现

啥叫混音呢&#xff0c;其实很简单&#xff0c;如果两个人同时说话 &#xff0c;他们俩发出的声波在空气中进行了波的叠加&#xff0c;这其实就是个混音。计算机的混音&#xff0c;其实是一个虚拟的混音操作&#xff0c;因为计算机其实是只有一个声源&#xff08;现在的计算机通…

Codeforces Round #330 (Div. 2) B. Pasha and Phone 容斥定理

B. Pasha and Phone Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/595/problem/B Description Pasha has recently bought a new phone jPager and started adding his friends phone numbers there. Each phone number consists of exact…

美女晕倒怎么办?二哈:这不是一滋就醒......

1 永远不要质疑二哈▼2 睡觉也不耽误练功▼3 谁还没为数学考试受过伤呢&#xff1f;▼4 可能我的嘴巴安装了笑话过滤器吧▼5 我书读得少&#xff0c;你别吓唬我▼6 希望狗没事儿▼7 海王的微信壁纸事实证明&#xff0c;会计确实不赚钱▼你点的每个赞&#xff0c;我都认真…

linux at java,Linux-Tutorial/Java-bin.md at master · linsanityHuang/Linux-Tutorial · GitHub

Java bin 目录下的工具JVM 内存结构运行时数据区(JVM 规范)VM 栈(JVM 虚拟机栈)是线程私有的&#xff0c;它的生命周期和线程相同。它描述的是 Java 方法执行的内存模式。Java 堆区(Heap)是 Java 虚拟机所管理的内存中最大的一块。是被所有线程共享的一块内存区域&#xff0c;在…

如何在 C# 中使用 FTP 上传文件

咨询区 webvision&#xff1a;我尝试用 C# 上传一个文件到 FTP-Server 上&#xff0c;文件已显示上传成功但显示 0Byte&#xff0c;我的代码大概是这样的。private void button2_Click(object sender, EventArgs e) {var dirPath "C:/Documents and Settings/sander.GD/B…

POJ 3274 Gold Balanced Lineup(哈希)

题目链接 很难想。会哈希&#xff0c;但是想不出。需要一个转化&#xff0c;本来是求某一段上的二进制上每一位的1数目相等&#xff0c;转化为找两段相等的&#xff0c;换元可推出公式。最后注意特判。。 1 #include <iostream>2 #include <cstdio>3 #include <…

java Ant build.xml

Java Ant build.xml详解1,什么是antant是构建工具 2,什么是构建 概念到处可查到&#xff0c;形象来说&#xff0c;你要把代码从某个地方拿来&#xff0c;编译&#xff0c;再拷贝到某个地方去等等操作&#xff0c;当然不仅与此&#xff0c;但是主要用来干这个 3,ant的好处 跨平台…

15℃!人类首次实现高压下室温超导,研究登上Nature封面

全世界只有3.14 % 的人关注了爆炸吧知识本文转自&#xff1a;机器之心今天一项新纪录&#xff0c;轰动整个物理界。「室温超导有可能实现吗&#xff1f;」这个问题困惑了人们许多年。而最新一期的 Nature 杂志封面研究给出了肯定的答案&#xff0c;该研究制造出了第一个无需冷却…

系统日子打印记录

#import <Foundation/Foundation.h>//DmLog----------------------------- #define DmLog_TYPE_1 1 //日志打印 1:开/0:关 #define __DmLOGWITHFUNCTION(s, ...) \ NSLog("%s : %",__FUNCTION__,[NSString stringWithFormat:(s), #…

linux下ui c语言编程,编写的C语言程序,怎么样制作一个UI界面?

c语言制作UI界面需要相关的UI库如windows操作系统本身就提供了UI的接口一个简单的示例代码如下#include LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hinstance,HINSTANCE hprevinstance,LPSTR line,int cmd){ static TCHAR AppName[]TEX…

使用自定义卫语句写出更简洁的代码

前言上次&#xff0c;我们介绍了Pitcher,可以帮我们简化卫语句&#xff1a;public User(string name, int age) {Throw.When(string.IsNullOrWhiteSpace(name), new ArgumentNullException(nameof(name)));Throw.When(age < 0, new ArgumentOutOfRangeException(nameof(age)…

Struts2的ResultType和Action处理链

Struts2的ResultType和Action处理链Struts2的结果类型在struts-default.xml中定义了Struts2内置的所有可用的<result-type/> 所有的Struts2结果处理类都要直接或间接的实现com.opensymphony.xwork2.Result接口 在struts-default.xml中的<result-types/>里面&#x…