免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 869 | 回复: 1
打印 上一主题 下一主题

新手编译2.6内核问题解决方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-07-26 11:56 |只看该作者 |倒序浏览
(1)安装模块的时候出现警告 warning: you man need to install module-init-tools
这个应该是编译之前的准备工作, 你可以安装新的modutils-2.4.26.rpm然后
安装module-init-tool-3.0_pre10.orig.tar.gz源码包( 安装方法可见install)

#tar zxvf module-init-tool-3.0.tar.gz
#cd module-init-tool-3.0
#./configure --prefix=/               // 如果使用 #./configure
#make moveold                        //这步就用 #make link 代替
#make
#make install
#./generate-modprobe.conf /etc/modprobe.conf

说明:安装modutils-2.4.26.rpm后在/sbin目录下产生了modprobe lsmod rmmod insmod depmod等文件,
但你还需要安装module-init-tools.
#./configure –prefix=/               // 就是安装到/sbin目录下
#make moveold                      // 就是将原来的 lsmod 等都加上一个.old,就是lsmod.old
#make                                       // 编译
#make install                            // 安装新的modprobe lsmod rmmod insmod depmod
#whereis modprobe lsmode rmmod insmod depmod            // 检查一下
注意:你不要把哪些*.old 给删除了, modprobe ...都是基于这些*.old 运行的噢

(2)将ex3编进内核却还是不能启动系统更改grub.conf  

kernel /vmlinuz-2.6.7 ro root=/LABEL               // 原来的,不可以启动
kernel /vmlinuz-2.6.7 ro root=/dev/hda10       // 可以启动 , 或者
kernel /vmlinuz-2.6.7 ro root= /                       // = 后要空一格

  说明以上针对/ 分区为ex3的系统. 新内核无法启动,并提示VFS ........kernel panic........分析:
      
LABEL参数可能可以指代根分区. 即dev/hda10 (我的/boot分区是hda9, /是hda10)
LABEL参数对ex3 格式不支持 . ex2的根分区是可以这么用的
root= / 这个就奇怪了,难道可以直接指出根目录是 / (注意空格) 2.4.20-8内核似乎不可以这么用


(3)防火墙起不来怎么办

1, 编译的时候没选上loadable module support 和MODULE_AUTOLOAD
2, 新内核同redhat有和不来的地方 (from net )

if!LC_ALL=Cgrep-iqnomodules/proc/cmdline2>;/dev/null&&[-f/proc/ksyms];then
USEMODULES=y
fi
替换成:
if!LC_ALL=Cgrep-iqnomodules/proc/cmdline2>;/dev/null;then
USEMODULES=y
fi

3,network option里 Netfilter Configuration 里面很多东西是需要的:

Network packet filtering (replaces ipchains)
IP tables support(y)
Connection tracking (required for masq/NAT) (y)
Helper match support (y)
Packet filtering(m)  ->; REJECT target support (m)
Packet mangling (y)
ARP tables support (y)
raw table support (required for NOTRACK/TRACE) (y)

这些只是我认为重要的,除此之外我还选了很多的模块,这里没写出的我都编为模块或没有选择, 我试过很多次,右边有些必须编为(y) 否则可能出现failed的提示

(4)声卡如何配置
如果把声卡遍进内核那么配置真的太简单了

Sound card support (SOUND) (y)
  Advanced Linux Sound Architecture (SND) (y)
  Sequencer support (SND_SEQUENCER)(y)
     Sequencer dummy client (y)
  OSS Mixer API (y)          (important)
  OSS PCM (digital audio) API (y)   (important)
  OSS Sequencer API (y)        (important)
PCI devices 子选项里面找到你用的型号的声卡选y,
只要上面(important)选了,oss就不要选了, alsa可以仿真oss的
至于其他的选m就行. 将以上这些东西遍进内核会增大内核差不多100k 我将他们编进去主要是要听音乐,不至于老是把模块加了又卸
配置了这些,你打开xmms发现没有声音, 看看进度条有没有动? 在动就是音量没有调好了 双击系统盘音量图标, pcm1 pcm2 调节一下就ok  了,要是没有看到pcm2 就点设置--首先项,要显示的控制条前打勾就可以了( 好罗嗦 ) 想一想晕死,我就是没有意识到这个原因,才狂看那些文档,结果发现自己该打板子,你要是有和我一样的经历,向你致敬了!

(5)一些配置参数的提醒:
                                    
Processor type and features
Preemptible Kernel                        
MTRR(memory type range register) support     
实时响应 *****
提高显卡性能

character deviceserial device
     8250/16550 and compatible serial support   
如果作服务器可以不选

block deviceloopback device support                    
可以用来mount哪些iso文件什么的.(m)


SCSI device support (SCSI)
     SCSI generic support         
如果你没有scsi设备,u盘什么的总是要用的吧
sda就根这个有关了

Support for frame buffer devices (FB  VGA 16-color graphics  support (FB_VGA16)
  VESA VGA graphics support (FB_VESA)
logo configuration           
  boot log 和子选项        

以上这些一起选上,可以在启动的时候显示一penguin

Graphics support
Console display driver support
  Video mode selection support   
启动的时候加一个vga=ask 就可以选择需要的字体


file system
Native Language Support  
看看提供了多少种编码,Arabic都有,我根拉登没联系,选他干嘛,把cp936选(y).其他的挑几个重要的选m

Executable file formats
Kernel support for MISC binaries
让内核支持java,Python, .NET orEmacs-Lisp.或者dos程序(要dosexec),或windows程序(要wine)
详细内容见 documentation/java.txt binfmt_misc.txt等

Networking optionsIP: TCP syncookie support (disabled per efault)
使用下面的命令可以使机器免遭syn攻击.在受到攻击时也可保持与合法用户的正常连接,但服务器超载时会误报为攻击
echo 1 >;/proc/sys/net/ipv4/tcp_syncookies

Networking options
Unix domain sockets (UNIX)
TCP/IP networking (INET)      
这两项和xwindows启动有关 (y)


(6)有关问题的解答:编译的时候干了些什么?

1。make /make install /make modules_install各干了些什么

make  编译出内核和模块 不向/lib/modules/2.6.7写入东西
make install   安装内核到/boot 还向/lib/modules/2.6.7 拷贝modules.*  
make modules_install   拷很多东西到/lib/modules/2.6.7/build

2。怎么编译才不出错?

  除了准备工作之外,建议在2.4.20-8下进入/usr/src/linux-2.6.7目录
   #rm -rf /lib/modules/2.6.7
     #mkdir /lib/modules/2.6.7
     #cp .config /tmp/
     #make mrproper      
     #make menuconfig        //导入/tmp/.config修改.保存.退出备份.conf
     #make && make install && make modules_install && byebye
     byebye是我的关机命令.大约20分钟.洗衣服.洗澡或者吃饭时间干这个

3。有关frame buffer(fb)
    fbset 这个utils可以全面利用fb功能
  echo -e '\033[?17;0;64c'   看看有什么变化呵呵, 红色的光标喔,这是我看文档唯一的收获? 17可以指定1,2,3,...具体看 Documentation/VGA-softcursor.txt

4。rpm 的解决:   

/etc/profile末尾加入:
              if [ `uname -r`="2.6.7" ]; then
         export LD_ASSUME_KERNEL=2.2.5
        fi

//注意[ ]和里面内容之间的空格. uname -r 输出的是你内核的版本.如果你的内核是2.6.0的你就把2.6.7改成2.6.0

usb问题    选上SCSI device support (SCSI)(m)    SCSI generic support(m)  把usb编成模块在2.6.7内核下正常加载 no preblem!

防火墙   见上详细说明


(7)如何让你的内核运行支持java的运行
1. 安装 Java Developers Kit

2. java的支持遍进内核(CONFIG_BINFMT_MISC) 或者作为模块(BINFMT_MISC) 然后需要的时候modprobe/insmod 来插入模块

3. mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc  //也可把这段命令加入/etc/rc.d/rc.local 启动的时候可以自动加载了
或者是在/etc/fstab 中加入这段: none /proc/sys/fs/binfmt_misc binfmt_misc defaults 0 0

4. echo ':Java:M::\xca\xfe\xba\xbe::/usr/local/bin/javawrapper:'>;/proc/sys/fs/binfmt_misc/register    //suport for javaapplication
echo ':ExecutableJAR:E::jar::/usr/local/bin/jarwrapper:'>;/proc/sys/fs/binfmt_misc/register     //support for executable Jar files
echo ':Applet:E::html::/usr/bin/appletviewer:'>;/proc/sys/fs/binfmt_misc/register         //support for Java Applets:
说明: ":ExecutableJAR:E::jar::/usr/local/bin/jarwrapper:"这些路径你要自己指定
5. 安几个小脚本到4指定的目录
1. javawrapper    2.6.*/Documentation/java.txt 里面有这个脚本,拷下来粘贴到一个文本,命名为javawrapper, 给个执行的权限
2. jarwrapper     2.6.*/Documentation/java.txt
6. 编译一个程序 javaclassname.c 2.6.*/Documentation/java.txt
gcc -O2 -o javaclassname javaclassname.c 把生成的javaclassname放到4里面指定的目录下
7. .....(未完)
information:  collator: huster001  qq:16885678  source from : partly from net, partly from doc, most from test!

论坛徽章:
0
2 [报告]
发表于 2004-07-26 11:58 |只看该作者

新手编译2.6内核问题解决方法

sorry  格式全乱了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP