makeを行う際の順序

  • フォーラムは新サイトへ移行しました。
  • このフォーラムではゲスト投稿が禁止されています
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2021-4-2 21:15
genji  新米   投稿数: 2
問題番号 8833 において

現在のカーネル設定を引き継いだという部分があるのに対し
最初に make mrproperを使い
現在のカーネルの設定ファイルごと削除してから

その次にmake oldconfigを使って
現在のカーネル設定をコピーして.configに格納していますが
存在しないものをどうやってコピーするのでしょうか?

もしくは現在のカーネルの設定をコピーしておき
という文言から、 make mrprope を実行するより前から
現在のカーネル設定を .config に格納しておく必要があるのでしょうか?

私の理解が追いついてない部分が
大いにあるとは存じますが
どなたか親切な方、ご教授いただけると幸いです。
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2021-4-3 9:25
yokoyama68  一人前   投稿数: 28
カーネルのソースコードから関連する箇所を抜粋します
------------------------------------------------------------
const char *conf_confnames[] = {
".config",
"/lib/modules/$UNAME_RELEASE/.config",
"/etc/kernel-config",
"/boot/config-$UNAME_RELEASE",
conf_defname,
NULL,
};
------------------------------------------------------------

これはoldconfigで元となるコンフィグファイルを検索する順番です
この順番で検索に行き、発見したものを使用します

1:.config # ソースディレクトリ内の.config
2:/lib/modules/$UNAME_RELEASE/.config # 現在動いているカーネルの/lib/modulesディレクトリ
3:/etc/kernel-config # 現在動いているカーネルの/etcディレクトリ
4:/boot/config-$UNAME_RELEASE # 現在動いているカーネルの/bootディレクトリ
5:conf_defname # ソースディレクトリ内のデフォルトコンフィグ

"make mrproper"を実行すると、1:は削除されますので、
"make oldconfig"では、2:,3:,4:のいずれかが使用されます

通常のインストールの場合、現在動いているカーネルの
/bootディレクトリ配下の4:が使われると思われます
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2021-4-4 23:07
genji  新米   投稿数: 2
yokoyama68様
ご回答いただきありがとうございます。

私の視野が狭かったですね、てっきり.config以外
存在しないものと思っていましたがほかのDirにも設定ファイルは存在しているのですね。

勉強になりました、ありがとうございます。
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2021-7-27 21:14
Cebolla  常連   投稿数: 15
同じ疑問を持ちました。
この件については、説明にも追加してほしい…。
この話を聞くと、cleanとmrproperとの違いもよく分からないですし…。

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.