vine-users ML アーカイブ



[vine-users:077456] Re: Vine-4.1 PPC の mkkpkg の現状 (2)

  • From: 竹中 浩 <tkn-hiroshi@xxxxxxxxxxxxxxx>
  • Subject: [vine-users:077456] Re: Vine-4.1 PPC の mkkpkg の現状 (2)
  • Date: Thu, 09 Aug 2007 08:15:14 +0900
竹中@京都です。

一部間違いがあったので訂正します。

On 2007/08/09, at 2:09, 竹中 浩 wrote:

竹中@京都です。

前報で、mkkpkg の configuration 段階でのエラー対処 方について報告しました。 今回は、build 段階での問題と対策(かなり荒っぽい方法です が)をご報告します。

その前に、先ず、kernel-source-2.6.16-0vl76.3.ppc.rpm を インストールした状態 で、/usr/src/linux-2.6.16 内のソースツリーからは、問題な くカーネルとカーネル モジュール を make する事が出来る事を申し上げてお きます。問題は、mkkpkg で、 kernel-2.5.16-0vl76.3.src.rpm からカーネル再構築を行う時に生じ ます。

次のようなエラーで終了してしまいました。

drivers/char/esp.c:1825: error: `TIOCGHAYESESP' undeclared (first use in this function) drivers/char/esp.c:1825: error: (Each undeclared identifier is reported only once
drivers/char/esp.c:1825: error: for each function it appears in.)
drivers/char/esp.c:1825: error: `TIOCSHAYESESP' undeclared (first use in this function) drivers/char/esp.c:1862: 警告: `interruptible_sleep_on' is deprecated (declared at include/linux/wait.h:371)
drivers/char/esp.c: 関数 `block_til_ready' 内:
drivers/char/esp.c:2145: 警告: `interruptible_sleep_on' is deprecated (declared at include/linux/wait.h:371)
make[2]: *** [drivers/char/esp.o] エラー 1
make[1]: *** [drivers/char] エラー 2
make: *** [drivers] エラー 2
エラー: /var/tmp/rpm-tmp.35150 の不正な終了ステータス (% build)


RPM ビルドエラー:
    /var/tmp/rpm-tmp.35150 の不正な終了ステータス (%build)

メッセージの内容から、変数 'TIOCGHAYESESP' と 'TIOCSHAYESESP' が宣言されていないと 云う事なので、荒療治ですが、~/rpm/BUILD/kernel-2.6.16/ linux-2.6.16 内の上記二つの
変数を使用している行をコメントアウトしてみました。

ここで、ソースを編集するタイミングですが、mkkpkg は、 menuconfig を実行する前にソー スツリーを~/rpm/BUILD/kernel-2.6.16/linux-2.6.16 に展開 するのですが、menuconfig 終了後に、上記ディレクトリを消去して再度ソースツリーを同一ディ レクトリに展開します。
そこで、kernel-mkkpkg.log で、

+ perl -p -i -e 's/^EXTRAVERSION.*/EXTRAVERSION = -0vl76.3_sbp2.2/' Makefile
+ make -s mrproper

←ここで、Cntrl+zが正しいです。

+ cp configs/kernel-2.6.16-ppc.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=ppc
+ echo USING ARCH=ppc
USING ARCH=ppc
+ make -s ARCH=ppc nonint_oldconfig
kernel/power/Kconfig:104:warning: 'select' used by config symbol 'SUSPEND2' refer to undefined symbol 'HOTPLUG_CPU' net/ieee80211/softmac/Kconfig:4:warning: 'select' used by config symbol 'IEEE80211_SOFTMAC' refer to undefined symbol 'WIRELESS_EXT' sound/pci/Kconfig:477:warning: 'select' used by config symbol 'SND_FM801_TEA575X' refer to undefined symbol 'VIDEO_V4L1' .config:2332:warning: trying to reassign symbol INPUT_PCSPKR  ← ここで、Cntrl+Z

で一旦停止して、エディターで drivers/char/esp.c の当該変 数を使用している行を4行 コメントアウトしました。これでこのエラーは回避出来たのですが、 今度は下記のエラー
を吐き出しました。

{standard input}: Assembler messages:
{standard input}:8055: Error: symbol `cprev' is already defined
{standard input}:8061: Error: symbol `cnow' is already defined
{standard input}:8073: Error: symbol `__pu_addr' is already defined
{standard input}:8079: Error: symbol `__pu_addr' is already defined
{standard input}:8085: Error: symbol `__pu_addr' is already defined
{standard input}:8091: Error: symbol `__pu_addr' is already defined
make[2]: *** [drivers/char/esp.o] エラー 1
make[1]: *** [drivers/char] エラー 2
make: *** [drivers] エラー 2
エラー: /var/tmp/rpm-tmp.29383 の不正な終了ステータス (% build)


RPM ビルドエラー:
    /var/tmp/rpm-tmp.29383 の不正な終了ステータス (%build)

このエラーは対処方法が分からず、結局以下の方法をとりました。

初めに述べたように、/usr/src/linux-2.6.16 のソースツリー からは正常に make できます。
そこで、kernel-mkkpkg.log で、

+ perl -p -i -e 's/^EXTRAVERSION.*/EXTRAVERSION = -0vl76.3_sbp2.2/' Makefile
+ make -s mrproper

ここで、Cntrl+zが正しいです。

+ cp configs/kernel-2.6.16-ppc.config .config
++ head -1 .config
++ cut -b 3-
+ Arch=ppc
+ echo USING ARCH=ppc
USING ARCH=ppc
+ make -s ARCH=ppc nonint_oldconfig
kernel/power/Kconfig:104:warning: 'select' used by config symbol 'SUSPEND2' refer to undefined symbol 'HOTPLUG_CPU' net/ieee80211/softmac/Kconfig:4:warning: 'select' used by config symbol 'IEEE80211_SOFTMAC' refer to undefined symbol 'WIRELESS_EXT' sound/pci/Kconfig:477:warning: 'select' used by config symbol 'SND_FM801_TEA575X' refer to undefined symbol 'VIDEO_V4L1' .config:2332:warning: trying to reassign symbol INPUT_PCSPKR  ← ここで、Cntrl+Z

一旦実行を停止して、gnome の ファイルブラウザ nautilus で、/usr/src/linux-2.6.16 以下を隠しファイルも含めて全て、~/rpm/BUILD/kernel-2.6.16/ linux-2.6.16に上書きコピー
して、fg コマンドで再スタートさせました。

結果として多少の警告メッセージは出たのですが、下記のようにビル ド出来ました。

ファイルの処理中: kernel-2.6.16-0vl76.3_sbp2.2
警告: ファイルが2回表記されています: /boot/ System.map-2.6.16-0vl76.3_sbp2.2 警告: ファイルが2回表記されています: /boot/ config-2.6.16-0vl76.3_sbp2.2
ファイルの処理中: kernel-devel-2.6.16-0vl76.3_sbp2.2
ファイルの処理中: mol-kmods-0.9.71_2.6.16-0vl76.3_sbp2.2
Finding  Provides: /usr/lib/rpm/find-provides
Finding  Requires: /usr/lib/rpm/find-requires
Requires(rpmlib): rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib (CompressedFileNames) <= 3.0.4-1
Requires: kernel = 2.6.16-0vl76.3_sbp2.2
パッケージに未収録のファイルを検査中: /usr/lib/rpm/check- files /var/tmp/kernel-2.6.16-0vl76.3_sbp2.2-root 書き込み完了: /home/hiro/rpm/SRPMS/ kernel-2.6.16-0vl76.3_sbp2.2.src.rpm 書き込み完了: /home/hiro/rpm/RPMS/ppc/ kernel-2.6.16-0vl76.3_sbp2.2.ppc.rpm 書き込み完了: /home/hiro/rpm/RPMS/ppc/kernel- devel-2.6.16-0vl76.3_sbp2.2.ppc.rpm 書き込み完了: /home/hiro/rpm/RPMS/ppc/mol- kmods-0.9.71_2.6.16-0vl76.3_sbp2.2.ppc.rpm
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.69272
+ umask 022
+ cd /home/hiro/rpm/BUILD
+ cd kernel-2.6.16
+ rm -rf /var/tmp/kernel-2.6.16-0vl76.3_sbp2.2-root
+ exit 0

---
竹中 浩
tkn-hiroshi@xxxxxxxxxxxxxxx