「Hello World」モジュール(およびNVIDIAおよびVirtualBox)を作成できません。

「Hello World」モジュール(およびNVIDIAおよびVirtualBox)を作成できません。

まず、詳細です。

今後:カーネル: 3.2.0-2-amd64, nvidia ドライバ: 295.59

後ろに:カーネル: 3.2.0-3-amd64, nvidia ドライバ: 302.17-3

私のDebian wheezyは常に最新の状態です。実は、毎日こうやってみるとapt-get upgrade -sそもそもこんな問題に封着するようになりました。

明らかに、一度後にapt-get upgrade私のDebianにビルドエコシステムおよび/またはDKMS自体に関連する「欠陥」がありました。

NVIDIAドライバは、公式Wikiが推奨するどのような方法でも構築できません。公式NVIDIAバイナリ(アップデートの1つのログフラグメント)が含まれています。

出力は次のとおりですdpkg-reconfigure nvidia-kernel-dkms

# dpkg-reconfigure nvidia-kernel-dkms

------------------------------
Deleting module version: 302.17
completely from the DKMS tree.
------------------------------
Done.
Loading new nvidia-302.17 DKMS files...
Building only for 3.2.0-3-amd64
Building initial module for 3.2.0-3-amd64
Error!  Build of nvidia.ko failed for: 3.2.0-3-amd64 (x86_64)
Consult the make.log in the build directory
/var/lib/dkms/nvidia/302.17/build/ for more information.

関連スニペットは/var/lib/dkms/nvidia/302.17/build/make.log次のとおりです。問題はいいえ編集中に私はそれを保証することができます。

  LD [M]  /var/lib/dkms/nvidia/302.17/build/nvidia.o
  Building modules, stage 2.
  MODPOST 0 modules
make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-3-amd64'
make: Leaving directory `/var/lib/dkms/nvidia/302.17/build'

それはすべてです。同じディレクトリ内の他のファイルには何の説明もありません(少なくとも私が確認した限り)。

質問する前に:私は今nouveauドライバを使用しています(とにかく選択肢はありません)、私にとってはあまりうまくいきません。私は3つのデスクトップを持っていますが、1つは映画を再生し続け、もう2つは非常に忙しい開発者です。 nouveauドライバーは少し失敗します(2番目の画面の映画は常に水平ストライプになり、XFCEコンソールはスクロールなどで少し遅れます)。

質問:

  • カーネルのバージョンを変更する必要がありますか?試しましたが成功しません3.2.0-2-amd64でした3.2.0-3-amd64。コンピュータを実行しよう3.2.0-3-rt-amd64とした後、数分後にコンピュータがハングして再インストールするのが怖かったです。
  • 私のビルド環境でバージョンを変更する必要がありますか? (アップデートで述べたように、これはNVIDIAの問題ではないことがわかりました)。
  • 私のリンカーに問題があると仮定する必要がありますか(私はいいえを使用してパッケージで使用していますgold。それでは、DKMSアプローチが最終的に機能するようにするにはどうすればよいですか?接続フェーズで問題が発生しているようです(そしてMODPOSTには0つのモジュールが表示されます)。ldbinutils

個人的には、これは私が一般的に認めるよりも深いレベルで私を邪魔します。私は一度Debianに対する大きな尊敬、今彫刻。さて、apt-get upgradeすべてのオープンソースカーネルドライバのコンパイル/リンクを中断する簡単な方法はありますか?

とても残念です。

アップデート#1:

私は実際に公式304.22 NVIDIAドライバをインストールしようとしましたが、ここにログファイルがあります。リンクが失敗したようですが、そうですか?

また、DKMS統合を同時に有効にしようとすると、スクリプトは現在のカーネルバージョンを確認できないというメッセージが表示されます(3番目の更新のテキスト)。

nvidia-installer ログファイル '/var/log/nvidia-installer.log'
作成時間:2012年7月21日土曜日22:59:30
インストーラバージョン:304.22

パス:/usr/local/rvm/gems/ruby-1.9.3-p194/bin:/usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:/usr/local/rvm/rubies /ruby-1.9.3-p194/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

NVIDIAインストーラのコマンドライン:
    ./nvidia - インストールプログラム

使用: nvidia-installer ncurses ユーザーインターフェイス
->ライセンスが承認されました。
-> NVIDIAドライババージョン304.22をインストールします。
->ドライバ(バージョン:304.22)がシステムにすでにインストールされているようです。このドライバ(バージョン:304.22)をインストールすると、既存のドライバが削除されます。あなたは本当に続けたいですか? (「いいえ」を選択するとインストールが中断されます。)(回答:はい)
->カーネルモジュールソースをDKMSに登録しますか?これにより、後で別のカーネルをインストールすると、DKMSは自動的に新しいモジュールを構築できます。 (答え:いいえ)
-> CC = "gcc-4.6"を使用してCCの健全性チェックを実行します。
-> CC = "gcc-4.6"を使用してCCバージョンチェックを実行します。
-> カーネルソースパス: '/lib/modules/3.2.0-3-amd64/source'
-> カーネル出力パス: '/lib/modules/3.2.0-3-amd64/build'
-> rivafbチェックを実行します。
-> nvidiafbチェックを実行します。
-> Xenチェックを実行します。
-> カーネルモジュールのビルドディレクトリをクリーンアップします。
   実行: 'cd ./kernel;make clean'...
->カーネルモジュールの構築:
   実行: 'cd ./kernel;make module SYSSRC=/lib/modules/3.2.0-3-amd64/source SYSOUT=/lib/modules/3.2.0-3-amd64/build'...
   NVIDIA:KBUILDに電話しています...
   make -C /lib/modules/3.2.0-3-amd64/build \
    KBUILD_SRC=/usr/src/linux-headers-3.2.0-3-common \
    KBUILD_EXTMOD="/tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel" -f /usr/src/linux-headers-3.2.0-3-common/Makefile \
    基準寸法
   test -e include/ generate/autoconf.h -a -e include/config/auto.conf ||
    エコ;
    echo "エラー:誤ったカーネル構成。";
    echo "include/generated/autoconf.h または include/config/auto.conf がありません。";\
    echo "この問題を解決するには、カーネル src で 'make oldconfig && make prepare' を実行してください。";
    エコ;
    /空/偽)
   mkdir -p /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/.tmp_versions ; rm -f /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/.tmp_versions/*
   make -f /usr/src/linux-headers-3.2.0-3-common/scripts/Makefile.build obj=/tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel
     gcc-4.6 -Wp, -MD, /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/.nv.od -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/include -I /usr/src/linux-headers-3.2.0-3-common/arch/x86/include -Iarch/x86/include/ 作成済み -Iinclude -I/usr/src/linux-headers-3.2.0-3-common /include -include /usr/src/linux-headers-3.2.0-3-common/include/linux/kconfig.h -I/tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit 関数宣言 -Wno-format-security -fno-delete-null-pointer-checks -Os -m64 -mtune=generic - mno -red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG -fno-async-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=2048 -Wno-unused-but-set-variable -fomit-frame-pointer - g -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -I/tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel -Wall -MD -Wsign-compare - Wno -俳優-
   qual -Wno-error -D__KERNEL__ -DMODULE -DNVRM -DNV_VERSION_STRING=\"304.22\" -Wno-unused-function -Wuninitialized -mno-red-zone -mcmodel=kernel -UDEBUG -U_DEBUG -DNDEBUG -DMODULE s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(nv)" -D"KBUILD_MODNAME=KBUILD_STR(nvidia)" -c -o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/.tmp_nv. tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv.c
   /usr/src/linux-headers-3.2.0-3-common/include/linux/kernel.h:17:0 に含まれるファイルで、
                    /usr/src/linux-headers-3.2.0-3-common/include/linux/sched.h:55で、
                    /usr/src/linux-headers-3.2.0-3-common/include/linux/utsname.h:35で、
                    /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-linux.h:38で、
                    /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv.c:13から:
   /usr/src/linux-headers-3.2.0-3-common/include/linux/bitops.h: "hweight_long" 関数で:
   /usr/src/linux-headers-3.2.0-3-common/include/linux/bitops.h:49:41: 警告: 条件式 [-Wsign-compare] の符号付き型と符号なし型
   /usr/src/linux-headers-3.2.0-3-common/arch/x86/include/asm/uaccess.h:575:0 に含まれるファイルで、
                    /usr/src/linux-headers-3.2.0-3-common/include/linux/poll.h:14で、
                    /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-linux.h:97で、
                    /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv.c:13から:
   /usr/src/linux-headers-3.2.0-3-common/arch/x86/include/asm/uaccess_64.h: "copy_from_user" 関数で:
   /usr/src/linux-headers-3.2.0-3-common/arch/x86/include/asm/uaccess_64.h:53:6: 警告: 符号付き整数式と符号なし整数式の比較 [-Wsign - compare]

...同じ警告のため、多くのコンパイル出力が削除されます...

     ld -m elf_x86_64 -r -o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nvidia.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel /NVIDIA-Linux-x86_64-304.22/kernel/nv.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-acpi.o /tmp/selfgz10141/NVIDIA-Linux-x86 -chrdev.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-cray.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-g14/NVIDIA -Linux-x86_64-304.22/kernel/nv-i2c.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-mempool.o /tmp/selfgz10141/NVI
   DIA-Linux-x86_64-304.22/kernel/nv-mlock.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-mmap.o /tmp/selfgz10141/NVIDIA-Linux-x86 nv-p2p.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-pat.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-procf1 NVIDIA-Linux-x86_64-304.22/kernel/nv-usermap.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nv-vm.o /tmp/selfgz10141/NVIDIA-2-Linux nv-vtophys.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/os-agp.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/os-interfaceo NVIDIA-Linux-x86_64-304.22/kernel/os-mtrr.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/os-registry.o /tmp/selfgz10141/NVIDIA-2-3-8 os-smp.o /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/os-usermap.o
   (cat /dev/null; echo kernel//tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/nvidia.ko;) > /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/ker
   make -f /usr/src/linux-headers-3.2.0-3-common/scripts/Makefile.modpost
     スクリプト /mod/modpost -m -i /usr/src/linux-headers-3.2.0-3-amd64/Module.symvers -I /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/Module.symvers - /tmp/selfgz10141/NVIDIA-Linux-x86_64-304.22/kernel/Module.symvers -S -w -s
   NVIDIA:KBUILDを離れました。
   nvidia.koのビルドに失敗しました!
   make[1]: *** [モジュール] エラー 1
   make: *** [モジュール]エラー2
->エラー。
エラー:NVIDIAカーネルモジュールを構築できません。
エラー:インストールに失敗しました。詳細については、「/var/log/nvidia-installer.log」ファイルを参照してください。 www.nvidia.comのLinuxドライバのダウンロードページにある追加情報ファイルで、インストールのトラブルシューティングに関する提案を見つけることができます。

アップデート#2:

提案によるとスターネーマー、再インストールしましたlinux-headers-3.2.0-3-amd64。完了すると、DKMS が起動し、NVIDIA ドライバーのコンパイルを再試行します。ファイルの内容は次のとおりです/var/lib/dkms/nvidia/304.22/build/make.log

カーネル3.2.0-3-amd64(x86_64)用nvidia-304.22用DKMS make.log
2012年7月22日日曜日14:50:58 EST
Linux 2.4カーネルを使用している場合は、次の点を確認してください。
以下に一致するカーネルソースを設定しました。
カーネルまたは正しいカーネルヘッダセットがインストールされました。
あなたのシステムから。

Linux 2.6カーネルを使用している場合は、次の点を確認してください。
カーネルと一致するカーネルソースを設定しました。
あなたのシステムにインストールされました。別途指定する場合
「KBUILD_OUTPUT」の出力ディレクトリを使用するか、
"O" KBUILD パラメーター、このパラメーターを指定する必要があります。
SYSOUT環境変数を含むディレクトリまたは
同等のnvidia-installerコマンドラインオプション。

カーネルがどこでどのように供給されるかに応じて(または
カーネルヘッダファイル)がインストールされている場合は、指定する必要があります。
その場所はSYSSRC環境変数に対応します。
同等のnvidia-installerコマンドラインオプション。

***ターゲットカーネルのバージョンを確認できません。 ***

make: *** [select_makefile]エラー1

アップデート#3:

数日間のインターネット検索の終わりに、これがNVIDIAの間違いであるかどうか疑問になり始めました。その結果、そうではありません。 (testingリポジトリから)Virtual Box 4.1をインストールしようとしましたが、偶然発見しました。これはまた:

#cat /var/lib/dkms/virtualbox/4.1.18/build/make.log
カーネル 3.2.0-3-amd64(x86_64) を使用する virtualbox-4.1.18 用 DKMS make.log
2012年7月24日火曜日17:58:57 EST
make: "/usr/src/linux-headers-3.2.0-3-amd64" ディレクトリを入力します。
  LD /var/lib/dkms/virtualbox/4.1.18/build/build-in.o
  LD /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/built-in.o
  CC [M] /var/lib/dkms/virtualbox/4.1.18/build/vboxdrv/linux/SUPDrv-linux.o
...チラシ...
  CC[M] /var/lib/dkms/virtualbox/4.1.18/build/vboxpci/SUPR0IdcClientComponent.o
  CC[M] /var/lib/dkms/virtualbox/4.1.18/build/vboxpci/linux/SUPR0IdcClient-linux.o
  LD [M] /var/lib/dkms/virtualbox/4.1.18/build/vboxpci/vboxpci.o
  ビルディングブロック、ステップ2。
  MODPOST 0モジュール
make: "/usr/src/linux-headers-3.2.0-3-amd64" ディレクトリから出る

もちろん、もっと詳しくはありません(すでに言ったように、〜らしいリンカーの問題に似ていますが、まだはっきりしません。しかし、何も触れなかったと誓います。私はちょうどapt-get upgrade-sを毎日します。それから明らかにそれはうまくいかなかった。

アップデート#4:

私は以下に説明するように小さなモジュールを作ろうとしました。https://stackoverflow.com/questions/4715259/linux-modpost-does-not-build-anything。実際に私はまだ見ているMODPOST 0 modulesV=1Makefileに入れたときの出力は次のとおりです。

#作る
make -C /lib/modules/3.2.0-3-amd64/build M=/home/dimi/code/hello V=1 モジュール
make[1]: `/usr/src/linux-headers-3.2.0-3-amd64' ディレクトリを入力します。
make -C /usr/src/linux-headers-3.2.0-3-amd64\
    KBUILD_SRC=/usr/src/linux-headers-3.2.0-3-common \
    KBUILD_EXTMOD="/home/dimi/code/hello" -f /usr/src/linux-headers-3.2.0-3-common/Makefile \
    基準寸法
test -e include/ generate/autoconf.h -a -e include/config/auto.conf ||
    エコ;
    echo "エラー:誤ったカーネル構成。";
    echo "include/generated/autoconf.h または include/config/auto.conf がありません。";\
    echo "この問題を解決するには、カーネル src で 'make oldconfig && make prepare' を実行してください。";
    エコ;
    /空/偽)
mkdir -p /home/dimi/code/hello/.tmp_versions rm -f /home/dimi/code/hello/.tmp_versions/*
make -f /usr/src/linux-headers-3.2.0-3-common/scripts/Makefile.build obj=/home/dimi/code/hello
   gcc-4.6 -Wp, -MD, /home/dimi/code/hello/.hello.od -nostdinc -isystem /usr/lib/gcc/x86_64-linux-gnu/4.6/include -I/usr/src/linux -headers-3.2.0-3-common/arch/x86/include -Iarch/x86/include/ 生成 -Iinclude -I/usr/src/linux-headers-3.2.0-3-common/include -include /usr /src/linux-headers-3.2.0-3-common/include/linux/kconfig.h -I/home/dimi/code/hello -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict -aliasing -fno-common -Werror-暗黙的な関数宣言-Wno-format-security -fno-delete-null-pointer-checks -Os -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit - at -a-time -maccumulate-outgoing-args -fstack-protector -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -DCONFIG_AS_CFI_SECTIONS=1 -DCONFIG_AS_FXSAVEQ=1 -pipe -Wno no - sse -mno-mmx -mno-sse2 -mno-3dnow -Wframe-larger-than=2048 -Wno-unused-but-set-variable -fomit-frame-pointer -g -Wdeclaration-after-statement -Wno-pointer - sign -fno-strict-overflow -fconserve-stack -DCC_HAVE_ASM_GOTO -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(hello)" -D"KBUILD_MODNAME=KBUILD_STR(hello)" -c -ホーム /dimi/code/hello/.tmp_hello.o /home/dimi/code/hello/hello.c
(cat /dev/null; echo kernel//home/dimi/code/hello/hello.ko;) > /home/dimi/code/hello/modules.order
make -f /usr/src/linux-headers-3.2.0-3-common/scripts/Makefile.modpost
  スクリプト /mod/modpost -m -i /usr/src/linux-headers-3.2.0-3-amd64/Module.symvers -I /home/dimi/code/hello/Module.symvers -o /home/dimi/コード/hello/Module.symvers -S -w -c -s
make[1]: `/usr/src/linux-headers-3.2.0-3-amd64' ディレクトリを終了します。

削除すると、次のように表示されますV=1

#作る
make -C /lib/modules/3.2.0-3-amd64/build M=/home/dimi/code/hello モジュール
make[1]: `/usr/src/linux-headers-3.2.0-3-amd64' ディレクトリを入力します。
  CC[M] /home/dimi/code/hello/hello.o
  ビルディングブロック、ステップ2。
  MODPOST 0モジュール
make[1]: `/usr/src/linux-headers-3.2.0-3-amd64' ディレクトリを終了します。

答え1

解決しました!

とても簡単です。/root/.bashrc以下の内容があります。

 export GREP_OPTIONS='--color=always'

次に変更してください。

 export GREP_OPTIONS='--color=never'

...そしてルートシェルを再起動します(確かに; このステップは省略しないでください)。すべてが再び機能し始めました。 NVIDIAとVirtualBoxカーネルモジュールの両方が最初の試みで構築されました。本当に嬉しいです! :-)

しかし、もう一度カーネルビルドツールに少しがっかりしました。彼らはよりよく認識し、以前の値を--color=never使用するたびに渡す必要がありますgrep。あるいは、以前の値を保存し、GREP_OPTIONSビルドプロセスが進行中に上書きして復元する必要があります。

この問題に対する私の一週間の壮大な戦いが、コミュニティとカーネルビルドツール開発者の両方にとって貴重なものになることを願っています。

私と一緒に滞在しながら助けを与えようと努力してくださった方々に心から感謝します。

(すべてのクレジットはここにあります:http://forums.gentoo.org/viewtopic-p-4156366.html#4156366)

答え2

dkmsを削除して再インストールしましたか?

これを使用すると、apt-get purge dkmsそれに依存するすべてのパッケージも消去されるため、後で再インストールする必要があります。

依存パッケージも消去したくない場合は、dpkgを使用できます。

dpkg --purge --force-depends dkms

通常の方法で再インストールしてください。apt-get install dkms

FWIW、ここにカーネルlinux-image-3.2.0-3-amd64とnvidia-kernel-dkms 302.17-3と関連パッケージがインストールされている2つのシステム(debian sidを実行)があります。 dkmsモジュールのコンパイルに問題はありません。 3番目のコンピュータ(私のデフォルトのデスクトップ)はまだnvidia-kernel-dkms 295.53-1を実行していますが、主にログアウトしたくないからです。

ちなみに、適性を使って様々なNVIDIAパッケージを整理して再インストールすると言われました。パッケージ名にnvidiaを含まない複数のnvidiaパッケージがあります。以下は、nvidia pkgsを保存/保存解除するために考えたソリューションです。 (私は通常、現在のXセッションからログアウトする意向/ログアウトが可能なときにのみnvidia pkgsをアップグレードしたいと思います...そして新しいnvidiaバージョンで不愉快な驚きを経験した後、私は最も重要でないコンピュータで最初にテストするのが好きです):

(注:これを実行するにはdlocateパッケージをインストールする必要があります)

$猫/usr/local/sbin/hold-nvidia.sh
#! /bin/bash

PKGS=$(dlocate -l nvidia cuda vdpau | awk '/^[hi]i/ {print $2}' | sed -e 's/:.*//')

エコ dpkg-hold $PKGS
dpkg -$PKGS を維持

dpkg-unholdアーカイブされていないパッケージの場合、ほぼ同じパッケージ(代わりに実行中dpkg-hold)があるため、それを実行またはdpkg --purge交換apt-get purgeするのは簡単ではありません。

答え3

これは悪いです:

PATH: /usr/local/rvm/gems/ruby-1.9.3-p194/bin:\
    /usr/local/rvm/gems/ruby-1.9.3-p194@global/bin:\
    /usr/local/rvm/rubies/ruby-1.9.3-p194/bin:\
    /usr/local/rvm/bin:\
    /usr/local/sbin:\
    /usr/local/bin:\
    /usr/sbin:\
    /usr/bin:\
    /sbin:\
    /bin

私はこのディレクトリの少なくともいくつかです$PATH編集する~前に/binそして/sbin- 特にrubyつまり、出力をカラー化する汎用シェルアプリケーションラッパースクリプトがあります。たぶん、次の設定を適用した可能性があります。/etc/skelこの場合でも/bin/env -i grepあなたを自分自身から救うこともできました。

これで人々がコンパイルします。chroot.

PS 私がこんなに厳しく選んだ理由は、数年前も同じ教訓を同じように学ばなければならなかったからです。おそらくあなたは必要ではないでしょう=neverもしあなたの$PATHとてもきれいです。または、次のものを使用できます。--color=autoこの場合は、次の場合にのみターミナルエスケープを使用してください。grep~のstdout端末です。つまり、端末ではありません。|pipe到着gcc.

あるいは、より良い方法は、柔軟でないシェルを設定しないことです。aliasそして:

alias grep=grep\ --color=anything

使用できるgrep~の$ENV環境:

GREP_COLOR=auto

答え4

私はNVIDIAドライバと一緒にDebian Wheezy(32ビット)を実行しています。最近、DKMS 320.17バージョンも試してみましたが、「公式」NVIDIAバージョン(295.59)に戻しました。これはインストールに失敗したためではなく、プログラムが含まれておらず、nvidia-settingsHDTV(セカンダリモニタ)でオーバースキャンをリセットする必要があるためです。 )。

/usr/bin/gccしかし、古いバージョンを実行するためにgcc-4.6にリンクする必要はありません。CC=gcc-4.6インストールされているすべてのnvidiaエントリを消去した後、「公式」295.59インストールを実行する前にこれを行いましたapt-get

まだ息がするテストバージョンなので、64ビットバージョンで正しくテストされていないバグが発生する可能性があります。前述したように、32ビットアップグレードには機能不足以外には問題はありませんでした。システムに問題がないと確信している場合は、記録されたエラーレポートを確認できます。

私の提案は、295.59の「公式」バージョンに戻り(リンクを使用するか、CCを定義して正しいバージョンを使用gcc)、nvidia-kernel-dkmsモジュールが更新されるまで(またはWheezyが次回リリースされるまで)待つことです。安定)。

もちろん確認してみるとここコードは次のとおりです。無料ではありませんとにかく、「公式」バイナリの試用版を使用することが可能なので、問題の可能性だけが高まります。

関連情報