Debian 64位内核升级步骤(编译内核deb包)

CentOS下安装beanstalkd服务

友善之臂Micro2440下的Embedded Linux的定时reboot

 

 

 

apt-get install bzip2 libncurses5-dev kernel-package zlib1g-devgcc make
kernel-package wget module-init-tools procps libncurses5-dev

beanstalkd在CentOS下没有默认的安装包,需要手动编译安装,最新版本1.6,不过1.5版本后,取消了对libevent的依赖,但不能直接启动作为daemon进程,1.4.6还是可以使用参数
-d  启动为
daemon,所以选择编译1.4.6。安装后默认不带启动脚本,但fedora下可以使用yum安装,安装后生成
/etc/init.d/beanstalkd启动脚本,所以特地在虚拟机里livecd启动fedora17,安装后,挖出beanstalkd启动脚本。

近期因为在实习公司里做的ARM服务器用到定时重启,于是今天就查了一下相关的资料。发现没有针对我目前的开发平台的具体方法,于是自己研究出来一套方法,供大家互相学习。

cd /usr/src  www.2cto.com  

 

 

wget

切换到 root用户下:

友善之臂Micro2440下的Embedded
Linux是自带crontab这个命令的,但是默认没有开启。大家可以参照以下的命令,实现定时重启功能。

tar -xvjf linux-2.6.35.9.tar.bz2

yum install libevent libevent-devel 

#config reboot time  www.2cto.com  

cp /boot/config-`uname -r` /usr/src/linux-2.6.35.9/.config

  www.2cto.com  

  1. mkdir -p /var/spool/cron/crontabs/

  2. cp    /sdcard/bin/root    /var/spool/cron/crontabs/

  3. crond start

  4. crontab -l

Then we must configure the new kernel:

所有版本地址:  

 

cd linux-2.6.35.9

 

命令1:创建一个目录,绝对路径为/var/spool/cron/crontabs/,这里面存放所有的crontab配置文件

make menuconfig
 

下载地址:

命令2:在创建的目录中添加“以用户名为文件名”的配置文件,这里我是复制了已经写好的配置文件
 www.2cto.com  

我们在内核配置里面至少有两个地方要修改。如下所示:

wget  
 

 

 

 

命令3:开启cron服务,由文件名我们发现这是一个守护进程

File systems -> Btrfs filesystem (EXPERIMENTAL) Unstable disk format

解压:

命令4:显示我们的配置信息

在”Btrfs filesystem”之前标上<*>  www.2cto.com  

tar xzf beanstalkd-1.4.6.tar.gz 

 

 

 

下面是我的配置文件root里面的信息:

Processor type and features -> Processor Family -> “our processor”

cd beanstalkd-1.4.6 

0 4 * * * reboot

删除Dell laptop support、Toshiba Laptop support。

 

懂crontab命令的朋友都知道,这里的配置信息意思是:每天凌晨4点钟,执行reboot命令。
 

裁减sound card support。

./configure 

Linux的定时reboot
近期因为在实习公司里做的ARM服务器用到定时重启,于是今天就查了一下相关的资料。发现没有…

裁减Bluetooth subsystem support。

 

裁减Wireless。

make 

裁减Kernel hacking 。
 

 

多次点击“ESC”退出,保存

make install 

在include/linux/version.h 中添加宏定义:

 

#define UTS_RELEASE 2.6.35.9

默认安装路径 :/usr/local/bin/ 

 

 

make-kpkg linux-image linux-headers –initrd

查看版本:

编译成功后执行cd ..

 

dpkg -i linux-image-2.6.29_2.6.35.9-10.00.Custom_i386.deb

/usr/local/bin/beanstalkd -v 

dpkg -i linux-headers-2.6.29_2.6.35.9-10.00.Custom_i386.deb

  www.2cto.com  

重启,用uname-a 查看内核版本  www.2cto.com  

1.4.6 

 

 

错误处理

添加用户组:

 

 

编译完成后生成linux deb 包,先dpkg -i装image,再装headers 

groupadd beanstalkd 

安装完成以后再update-grub 进入/boot/grub/menu.lst 中选择启动的内核项
默认的第一项为0

 

 

添加用户:

ps:在编译完成内核后开机可能出现 Kernel panic – not syncing: VFS: Unable
to mount root fs on unknown-block(1,0)的错误
在/boot/grub/menu.lst中可以发现新加的内核可能是没有 initrd  
/initrd.img-2.6.37.6 未生成的原因不明 可以手动生成 

 

 

adduser -M -g beanstalkd -s /sbin/nologin beanstalkd 

执行命令 

 

 

添加启动脚本,放入 /etc/init.d/ 目录下

 mkinitramfs -o /boot/initrd.img-2.6.34.10
2.6.34.10(/boot/initrd.img-2.6.34.10是这个启动加载文件的生成路径
2.6.34.10是 /lib/modules/2.6.34.10)然后update-grub
再启动新内核就没有问题了  www.2cto.com  

 

 

chmod 755 /etc/init.d/beanstalkd 

卸载一个已经安装的内核包

 

 

加入开机启动:

debian卸载旧内核要先看看有哪些旧的内核,用命令:

  www.2cto.com  

   dpkg –get-selections |grep linux

chkconfig beanstalkd  on

 

 

如果你的内核是以kernel开头的就把上面的linux改成kernel,之后再用

启动:

   dpkg –purge –force-remove-essential linux-image-XXX

 

64位内核升级步骤(编译内核deb包) apt-get
install bzip2 libncurses5-dev kernel-package zlib1g-devgcc make
kernel-package wget module-init-tools procps libncurs…

service beanstalkd start 

 

安装完毕

 

附:从Fedora下挖来的 startup 脚本:

 

001

#!/bin/sh

002

#

003

# beanstalkd – a simple, fast workqueue service

004  www.2cto.com  

#

005

# chkconfig:   – 57 47

006

# description: a simple, fast workqueue service

007

# processname:  beanstalkd

008

# config:       /etc/sysconfig/beanstalkd

009

#             

010

 

011

### BEGIN INIT INFO

澳门微尼斯人手机版,012

# Provides: beanstalkd

013

# Required-Start: $local_fs $network $remote_fs

014

# Required-Stop: $local_fs $network $remote_fs

015

# Default-Stop: 0 1 2 6

016

# Short-Description: start and stop beanstalkd

017

# Description: a simple, fast work-queue service

018

### END INIT INFO

019

 

020

# Source function library.

021

. /etc/rc.d/init.d/functions

022

   www.2cto.com  

023

# Source networking configuration.

024

. /etc/sysconfig/network

025

 

026

# Check that networking is up.

027

[ “$NETWORKING” = “no” ] && exit

发表评论

电子邮件地址不会被公开。 必填项已用*标注