組み込み Linux (OpenWrt) を実行するカスタム ハードウェアが魅力的です。CPU は IMX6ULL (ArmV7) なので、JTAG インターフェイス経由でデバッグするために Jlink によってサポートされています。GDB サーバーを起動し、Linux カーネルを段階的にデバッグすると、optimized out
カーネルがフラグ付きでコンパイルされているため、多くのメッセージが表示されます。そのため、次のオプションをKBUILD_CFLAGS += -O2 -fno-reorder-blocks -fno-tree-ch $(EXTRA_OPTIMIZATION)
使用してコンパイルしようとしています。-O0
$ make -j64 V=s all
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CC scripts/mod/empty.o
....
AR built-in.o
LD vmlinux.o
MODPOST vmlinux.o
WARNING: modpost: Found 4 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
arm-openwrt-linux-muslgnueabi-ld: arch/arm/kernel/setup.o: in function `setup_arch':
/opt/eclipse/imx6ull-openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-imx6ull_cortexa7/linux-4.14.199/arch/arm/kernel/setup.c:1134: undefined reference to `psci_smp_ops'
arm-openwrt-linux-muslgnueabi-ld: /opt/eclipse/imx6ull-openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-imx6ull_cortexa7/linux-4.14.199/arch/arm/kernel/setup.c:1134: undefined reference to `psci_smp_ops'
arm-openwrt-linux-muslgnueabi-ld: kernel/panic.o: in function `__xchg':
/opt/eclipse/imx6ull-openwrt/build_dir/target-arm_cortex-a7+neon-vfpv4_musl_eabi/linux-imx6ull_cortexa7/linux-4.14.199/./arch/arm/include/asm/cmpxchg.h:110: undefined reference to `__bad_xchg'
arm-openwrt-linux-muslgnueabi-ld: kernel/exit.o: in function `__xchg':
チェック済みWARNING: modpost: Found x section mismatch(es).
ここ. 結果のバイナリ ファイルは、一部の設定で構成されたサイズよりも多くのスペースを占めるようです。オプションvmlinux
でビルドされたサイズは です。 を使用するとイメージが得られるので、構成でコンパイルされたさらに大きなイメージを格納できる十分なスペースが DDR3 RAM (128Mb) にあることを願っています。そこで、セクションにさらにスペースを提供する方法を知りたいのですが。どなたか、それができる場所を教えていただけませんか? Linux カーネルに関する知識が限られているため、そのために使用されるリンカー スクリプトを見つけることができませんでした。-O2
39Mb
-O1
37Mb
-O0