satsukiの日記: Linuxお勉強メモ-2 2
日記 by
satsuki
kernel:2.5.50
USAGI:なし
distribution:Vine Linux 2.6
modules周りがごそっと実装しなおされたためinsmodとかそのへんが軒並使えなくなりました.そのため対応するバージョンをインストールする必要があります.
下記URLからソースを持って来ていれてください.
http://www.kernel.org/pub/linux/kernel/people/rusty/module-init-tools-0.7.tar.gz
このソースに含まれているmodprobeは-cオプションを実装していません.そのためVineLinux2.6ではネットワーク周りの起動スクリプトで不具合がおきました.修正パッチをコメントに載せておきますので必要なかたはどうぞ.
新しいmodprobeのconfigファイルの名前が変わっています.
/etc/modules.conf -> /etc/modprobe.conf
と修正してください.
/lib/modules/2.5.50/kernelにモジュールがそのまま置いてあるのは,少なくとも今の実装では正しいです.
modules.depが必要なくなりました(未実装なだけ?).
depmodは先程のソースには含まれておらず古いままです.実行する必要はありません.
はぁ,やっとまともな起動までこぎ着けた...
参考URL:
http://pc.2ch.net/test/read.cgi/linux/999618082/592-595
http://www.linux-debian.de/howto/post-halloween-2.5.txt
modprobe.c.patch (スコア:1)
+++ modprobe.c 2002-12-02 19:53:56.000000000 +0900
@@ -479,6 +479,22 @@
return 0;
}
+/* Print out config file. */
+static void
+print_config_file(const char *filename)
+{
+ FILE *cfile;
+ char *line;
+
+ cfile = fopen(filename, "r");
+ if (cfile == NULL) return;
+
+ while ((line = read_line(cfile)) != NULL) {
+ printf("%s\n", line);
+ free(line);
+ }
+}
+
/* Simple format, ignore lines starting with #, one command per line */
static void load_config_file(const char *filename, int mustload,
struct module *modules,
@@ -615,7 +631,7 @@
try_old_version("modprobe", argv);
- while ((opt = getopt_long(argc, argv, "vVC:", options, NULL)) != -1) {
+ while ((opt = getopt_long(argc, argv, "vVC:c", options, NULL)) != -1) {
switch (opt) {
case 'v':
verbose = 1;
@@ -626,6 +642,9 @@
case 'C':
config = optarg;
break;
+ case 'c':
+ print_config_file(config ?: DEFAULT_CONFIG);
+ exit(0);
default:
fprintf(stderr, "Unknown option `%s'\n", argv[optind]);
print_usage(argv[0]);
オプションは順番に書きませう (スコア:1)