Home » FreeBSD » FreeBSD カスタムカーネル 再構築と名称変更 (Tag: )

FreeBSD kernel compile でも紹介した通り、常に kernel 再構築によりカスタムカーネルで稼動させています。

私はカスタムカーネルの名称を `hostname -s` にする習慣があり、

# cat /etc/motd | head -1
FreeBSD 9.1-RELEASE (hs0) #0: Wed Oct 30 16:18:09 JST 2013

# sysctl kern.version
kern.version: FreeBSD 9.1-RELEASE #0: Wed Oct 30 16:18:09 JST 2013
    root@hs0.drive.ne.jp:/sys/amd64/compile/hs0

# cat /var/run/dmesg.boot | head -n 6
Copyright (c) 1992-2012 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.1-RELEASE #0: Wed Oct 30 16:18:09 JST 2013
    root@hs0.drive.ne.jp:/sys/amd64/compile/hs0 amd64

上記の例では hs0 ですが、数ヶ所に反映されます。

ホスト名を変更した場合、カスタムカーネルファイルをリネームした後通常通りに

# cd /sys/`uname -p`/conf/
# config `hostname -s`
# cd ../compile/`hostname -s`
# make cleandepend ; make depend ; make ; make install

で再構築すると 30 分程掛かります。機器構成が変わった訳でもなくこの時間と機器への負荷を掛けることに抵抗を感じていましたが、もう少し簡単に変更出来る方法が分かりました。

以下の例では hs0 -> hs1 と名称変更する場合を例とします。

# cd /sys/amd64/compile/
# mv hs0 hs1 ; cd hs1
# sed -i'.s' -e 's/hs0/hs1/g' vers.c
# find ./ -name ".depend" -exec sed -i'.s' -e 's/hs0/hs1/g' {} \;
# make

.depend をすべて書き換えないと、make の時点で必要なファイルがないとエラーが出て失敗します。

# make install
thiskernel=`sysctl -n kern.bootfile` ;  if [ ! "`dirname "$thiskernel"`" -ef /boot/kernel ] ; then  chflags -R noschg /boot/kernel ;  rm -rf /boot/kernel ;  else  if [ -d /boot/kernel.old ] ; then  chflags -R noschg /boot/kernel.old ;  rm -rf /boot/kernel.old ;  fi ;  mv /boot/kernel /boot/kernel.old ;  sysctl kern.bootfile=/boot/kernel.old/"`basename "$thiskernel"`" ;  fi
kern.bootfile: /boot/kernel/kernel -> /boot/kernel.old/kernel
mkdir -p /boot/kernel
install -p -m 555 -o root -g wheel kernel /boot/kernel
install -p -m 555 -o root -g wheel kernel.symbols /boot/kernel
cd ../../../modules; MAKEOBJDIRPREFIX=/usr/src/sys/amd64/compile/hs1/modules KMODDIR=/boot/kernel MACHINE_CPUARCH=amd64 DEBUG_FLAGS="-g" MACHINE=amd64 KERNBUILDDIR="/usr/src/sys/amd64/compile/hs1" SYSDIR="/usr/src/sys/amd64/compile/hs1/../../.." make  install

上記の様に続いて正常に終了する場合は、5 分程度で終了します。デバイス毎にコンパイルされる訳ではないので、負荷もほぼなく終了することを確認しました。

Random Select

ボンディ 通信販売 ビーフカレー (5)
自宅 de ボンディ (Part 2) の続きです。2 回目1 回目は土曜日のランチ、2 回目は翌日日曜日のランチです。"お酒は我慢出来てもカレーは難しい" 私にとって、2 日連続
VAIO Fit 13A (7)
VAIO Fit 13A (到着) の続きです。バックライトキーボードと MacBook のトラックパッドに似たタッチパッドにすっかり惚れました。ところが、設定変更は簡単には済みませんでした。VAIO
緋寒桜 (ひかんざくら)
沖縄出張 (No. 17 – きしもと食堂) の後は八重岳に向かいました。私が北部に行く時は大抵曇りが多いのですが、何とも好天に恵まれました。記憶にある沖縄の濃い青色の空です。麓付近に着く
玉ねぎ + あらびきガーリック
ハッシュ・ド・ビーフの作り方 (No. 2) の続きです。玉ねぎ次は玉ねぎをざく切りして、あらびきガーリックとともに茶色くなるまで炒める。炒め終われば寸胴に移す。です。玉ねぎは、近所のスーパーで適当に
ARROWS X F-10D
ARROWS X F-10D (No. 1) の続きです。上下のカーソルキーはどこ ?HTC Desire SoftBank X06HTII と ARROWS X F-10D のまず大きな違いの 1
サントリーチューハイ -196℃ (2)
私が知る限りでは 20 年近くになりますが、毎年夏も終わりになると キリン秋味 が店頭に並び始めます。ちょうどその頃、最寄りのスーパーやコンビニエンスストアでまた見慣れない大人の飲み物を見かけました。
煮込み開始直前 (3)
ハッシュ・ド・ビーフの作り方 (No. 3) の続きです。煮込み最後はローリエを 2, 3 枚入れてよくかき混ぜ、2, 3 時間煮込む。適当にかき回せつつ。です。すべての材料を寸胴に移した状態で、ほぼ
VAIO Fit 13A (背面)
hp dv5 has broken again and again で 5 年 3 ヶ月程愛用してきた hp dv5 の 5 回目の故障を機に、新たにノート PC を購入することにしました。初めてノー
Office Desk
この手の手続きは、何かきっかけがないと (きっかけがあっても) 腰が重いクセが抜けません。現在地には 2006/09 に転入しましたが、この時は住民票のみ移して、戸籍謄本や印鑑証明の処理はしませんでし
ビーフカレー
御茶ノ水・神田神保町界隈は、スポーツ用品店や楽器店にオフィスや大学が混在する不思議な場所ですが、実はカレー店も老舗が集まっています。昔はこの界隈に "バルチックカレー" という店舗
Valid HTML5 Valid CSS3 Another HTML Lint