korechi’s diary

とあるVR/ARエンジニアのブログ

CentOSの初期設定

カーネルをいじくりまわしていたらthriftの挙動がおかしくなり、回復しそうにないのでPCを変更した。
簡単な初期設定に必要なあれこれをまとめておく。

sudoの追加

# su
# visudo

ここで

## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

と出てくるので下に

<ユーザー名> ALL=(ALL)   ALL

と追加する。

gitのクローン

これは超簡単。

$ git clone <リモートリポジトリのURL>

もしgitがなければ

$ sudo yum install git

カーネルソースのダウンロード

# yum install rpm-build
$ uname -an

これで自身の環境のlinuxバージョンを確認し、kernel-<バーション>.el6.rpmをダウンロードし、解凍する。
ここでrootにはならないよう注意!

例)
$ wget http://vault.centos.org/6.5/updates/Source/SPackages/kernel-2.6.32-431.23.3.el6.src.rpm
$ rpm -ivh kernel-2.6.32-431.23.3.el6.src.rpm

もし、centOSのバージョンを知りたい時は、

$ cat /etc/redhat-release

で確認できる。ホームディレクトリ下にrpmbuildができるので

$ cd rpmbuild/SPECS
# yum install patchutils xmlto asciidoc elfutils-libelf-devel elfutils-devel binutils-devel 
# yum install newt-devel audit-libs-devel 'perl(ExtUtils::Embed)' hmaccalc

# rngd -r /dev/urandom

一般ユーザーにもどって

$ rpmbuild -bp kernel.spec --target=x86_64

これでrpmbuild下にカーネルソースができあがる。

ドライバのインストール

これは以前の記事にのせたのでコマンドだけのせる。

$ cd ~/rpmbuild/BUILD/kernel-2.6.32-431.23.3.el6/linux-2.6.32-431.23.3.el6.x86_64/
$ cp /usr/src/kernels/2.6.32-431.23.3.el6.x86_64/Module.symvers .
$ make oldconfig
$ make prepare
$ make modules_prepare
$ make SUBDIRS=scripts/mod
$ make SUBDIRS=drivers/net/mlx4 modules

これでビルドが完了する。以降は上の一番下のコードだけやれば良い。ただ、Module.symversが無い場合があるので、その時は

# yum install kernel-devel

をすれば良い。あとは

$ cd driver/net/mlx4/
# ./unload.sh
# rmmod mlx4_core.ko
# insmod mlx4_core.ko
# ./load.sh
# sevice NetworkManager stop
# ifconfig em1 192.168.50.1 up

NICが使える。
アンマウントするには

$ sudo  umount /mnt/flash