カスタムARMカーネルをBeagleBoneブラックワイヤレスで構築しようとしています。使用しています このカーネルを開始点として
現在の.config
ファイル(make localmodconfig
)をコピーし、手動で編集して、組み込みのWLANモジュールのサポートを追加しました( there からの変更)。
make uImage
または他のターゲットを実行すると、常に質問が表示されます。回答後、.config
は上書きされ、一部の変更は失われます。 make olddefconfig
も試してみましたが、質問なしでほぼ同じ結果が得られました。
行われた変更:
CONFIG_WLAN=y
CONFIG_WIRELESS=y
CONFIG_WIRELESS_EXT=y
CONFIG_WL12XX_PLATFORM_DATA=y
CONFIG_KEYS=y
CONFIG_SECURITY=y
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ARC4=y
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_RNG=y
CONFIG_CRYPTO_AEAD=y
CONFIG_CRYPTO_CCM=y
CONFIG_CRYPTO_GCM=y
CONFIG_RFKILL=y
CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_CRC7=y
# The following are needed for soft AP
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
CONFIG_NF_CONNTRACK=y
CONFIG_NETFILTER_XTABLES=y
CONFIG_NF_DEFRAG_IPV4=y
CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_NF_NAT=y
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_INPUT_UINPUT=y
# Enable Ethernet-WLAN Bridge
CONFIG_NETFILTER=y
CONFIG_NETFILTER_ADVANCED=y
CONFIG_BRIDGE_NETFILTER=y
CONFIG_STP=y
CONFIG_BRIDGE=y
CONFIG_BRIDGE_IGMP_SNOOPING=y
CONFIG_LLC=y
CONFIG_INPUT_UINPUT=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_NLATTR=y
CONFIG_AVERAGE=y
どうすればこれをスキップ/回避できますか?別のカーネルが必要ですか?または何か他のことをしますか?ヒントをありがとうございます。
Linuxカーネルmakeは私の.config/droppingの変更を上書きし続けます
これは、カーネルを構築するための有効な。configファイルがおそらくないことを示しています。
あなたが言及したガイドに従わなかったようです:
It is often easiest to start with a base default configuration and then customize it for you use case if needed.
ミステリー「current .config file」の代わりに、実際に「base default configuration」(たとえば、この回答の後半を参照)を使用した場合は、おそらくそのような問題に遭遇することはなかっただろう。
現在の.configファイルをコピーして(localmodconfigを作成)、手動で編集して、組み込みのWlanモジュールのサポートを追加しました
いいえ、それはLinuxカーネルを構成する適切な方法ではありません。
古いカーネルバージョンの。configファイルを使用すると、おそらく非推奨の構成名が使用されるため、何をしているのかわからない場合は避ける必要があります。
それ以外の場合、「最小限の作業で既存の構成を新しいバージョンに移行する場合は、「make oldconfig」を使用します。これにより、新しい質問への回答のみが求められます」( LinuxカーネルREADMEファイル)。
何をしているのかを本当に理解していない限り、。configファイルを直接編集すると、依存する必要な構成オプションが失われる可能性があります。
別のカーネルが必要ですか?または何か他のことをしますか?
Beaglebone BlackSBC専用のdefconfigファイルがないメインラインカーネルを使用することを選択しました。
TI AM335xボードの汎用ビルドから始めて、am335x-boneblack.dtbデバイスツリーファイルで起動できます。
シェルコマンドで最初からやり直す
make mrproper
または
make distclean
ツールチェーン(クロスコンパイラなど)がPATHに含まれていることを確認します。
echo $PATH
アーキテクチャの環境変数を設定します。
export Arch=arm
インストールしたものに応じて、ツールチェーンプレフィックスの環境変数を設定します。
export CROSS_COMPILE=arm-linux-gnueabihf-
末尾のハイフンに注意してください。
(特定のBeaglebone Black defconfigの代わりに)TISitara製品ラインの汎用カーネル構成をインストールします。
make omap2plus_defconfig
適切な構成ツールを使用してカーネルビルドをカスタマイズします。
make menuconfig
次に、カーネルイメージ、ロード可能なモジュール、およびデバイスツリーブロブを構築します。
make uImage
make modules
make am335x-boneblack.dtb
詳細については、LinuxカーネルソースのREADMEファイルを参照してください。