LoginSignup
31
37

More than 5 years have passed since last update.

Install Linux kernel-devel

Posted at

Goal

  • デバイスなどのモジュールをビルドするために必要なkernel-develをインストールする
  • CentOS(rpmベースのOS)で、Linux kernel-develをkernelとの整合性を保ってインストールする
  • ちなみにkernel-develはモジュールのビルドなどに必要な最低限のソースが入っているらしい

Manual

yum.conf編集

exclude=kernel*と記述されている箇所をコメントアウトする

/etc/yum.conf
# exclude=kernel*

yum install

sudo su -
yum install kernel-devel

## 
## install確認
## 
rpm -qa | grep kernel-devel
  # kernel-devel-2.6.32-504.3.3.el6.x86_64
  # kernel-develがインストールされたことを確認

ls -l /usr/src/kernels
  # drwxr-xr-x 22 root root 4096 Jan 17 14:02 2.6.32-504.3.3.el6.x86_64
  # ソースは上のディレクトリにインストールされる

kernelとkernel-develのバージョンを確認

yum installだと新しいkernel-develをとってきてしまい、必ずしもkernelのバージョンと一致しない.
kernelとkernel-develのバージョンが整合しないとlib/modulesのパスのシムリンクがリンク切れになってしまう.

## 
## 2.6.32-431と2.6.32-504.3.3のようにバージョンが一致しない場合がある
## 

uname -r
  # 2.6.32-431.el6.x86_64
rpm -qa | grep kernel-devel
  # kernel-devel-2.6.32-504.3.3.el6.x86_64

## 
## バージョンが一致しないと、以下の/lib/modules/${VERSION}/buildのシムリンクが切れ、
## kernelモジュールのビルドができなくなる
## 

ls -l /lib/modules/2.6.32-431.el6.x86_64/build

バージョン指定でkernel-develをインストール

既にkernel-develがインストールされている場合は、削除する

## 
## 誤ったバージョンを変数に格納
## 
KERNEL_DEVEL_WRONG_VERSION=`rpm -qa | grep kernel-devel`
echo ${KERNEL_DEVEL_WRONG_VERSION}
  # kernel-devel-2.6.32-504.3.3.el6.x86_64

## 
## rpmコマンドで削除
## 
rpm -e --nodeps ${KERNEL_DEVEL_WRONG_VERSION}

## 
## remove確認
## 
rpm -qa | grep kernel-devel
  # インストールされていたバージョンが消える
ls -l /usr/src/kernels/
  # インストールされていたバージョンが消える

新しいkernel-develをバージョン指定でinstall

## 
## 正しいバージョンを変数に格納
## 
KERNEL_VERSION=`uname -r`
KERNEL_DEVEL_EXPECTED_VERSION=kernel-devel-${KERNEL_VERSION}
echo ${KERNEL_DEVEL_EXPECTED_VERSION}
  # kernel-devel-2.6.32-431.el6.x86_64

## 
## 以下のサイトなどからrpmパッケージを探し、リンク先を保存し、ダウンロードする
## http://rpm.pbone.net/
## 

cd /usr/local/src
wget "ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.4/x86_64/updates/security/${KERNEL_DEVEL_EXPECTED_VERSION}.rpm"
ls -l ${KERNEL_DEVEL_EXPECTED_VERSION}.rpm
  # downloadできたことを確認

rpm -ivh ${KERNEL_DEVEL_EXPECTED_VERSION}.rpm
  # インストール実行

## install確認
rpm -qa | grep kernel-devel
  # 正しいバージョンがインストールされる
ls -l /usr/src/kernels/
  # 正しいバージョンがインストールされる

ls -l /lib/modules/${KERNEL_VERSION}/build/
  # シムリンク先が存在すること

Environment

uname -a
  # Linux *** 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

cat /etc/issue
  # CentOS release 6.5 (Final)
  # Kernel \r on an \m
31
37
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
37