Skip to contentSkip to conversation

arc: Removed local initramfs source file from axs101 configuration.

PATCH New [email protected] 3 participants 6 messages Jan 4, 2016 – Jan 13, 2016 Synopsys ARC architecture

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 arc: Removed local initramfs source file from axs101 configuration.

From: Carlos Palminha <[email protected]>

Cannot compile kernel with INITRAMFS SOURCE option. Please move this option to a buildroot patch.

---
 arch/arc/configs/axs101_defconfig | 1 -
 1 file changed, 1 deletion(-)
arch/arc/configs/axs101_defconfig +0 -1
index f1ac981..3d14cf8 100644
@@ -12,7 +12,6 @@ CONFIG_NAMESPACES=y
 # CONFIG_UTS_NS is not set
 # CONFIG_PID_NS is not set
 CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
 CONFIG_EMBEDDED=y
 CONFIG_PERF_EVENTS=y
 # CONFIG_VM_EVENT_COUNTERS is not set
Signature · 1 line
2.5.0
#1 lore raw

PATCH 1/1 arc: Removed local initramfs source file from axs101 configuration.

Hi Carlos,

Quoted 4 lines · On Mon, 2016-01-04@14:55 +0000, [email protected] wrote:

From: Carlos Palminha <palminha at synopsys.com>

Cannot compile kernel with INITRAMFS SOURCE option. Please move this option to a buildroot patch.

First of all if your problem is only related to Buildroot then there's not much sense in adding linux-snps-arc at lists.infradead.org which is used for pure Linux kernel discussions.

Then even in case of Buildroot CONFIG_INITRAMFS_SOURCE could be a problem only if you don't set Buildroot's BR2_TARGET_ROOTFS_INITRAMFS=y, see how it is done in snps_axs101_defconfig here
https://git.busybox.net/buildroot/tree/configs/snps_axs101_defconfig#n7

What happens if BR2_TARGET_ROOTFS_INITRAMFS=y then existing in kernel's defconfig CONFIG_INITRAMFS_SOURCE gets overridden with new value, see
https://git.busybox.net/buildroot/tree/linux/linux.mk#n217

Now if you really want to not use built-in kernel initramfs then simplest thing to do is to run "make linux-menuconfig" from your Buildroot's folder and disable or set with nothing CONFIG_INITRAMFS_SOURCE.

-Alexey

#2 lore raw

PATCH 1/1 arc: Removed local initramfs source file from axs101 configuration.

Hi Alexey,

Probably my e-mail comments before the patch mislead you...
If you download the kernel source and try to compile it, it won't work because of the INITRAMFS pointing to a non-existing directory. (check log below)

That's why that option should be removed from the standard kernel.

Regards,
C.Palminha

palminha at palminha-vm:~/src/kernels/linux-mainline-next$ make axs101_defconfig

  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
palminha at palminha-vm:~/src/kernels/linux-mainline-next$ make
scripts/kconfig/conf  --silentoldconfig Kconfig
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  CC      kernel/bounds.s
  CHK     include/generated/bounds.h
  CHK     include/generated/timeconst.h
  CC      arch/arc/kernel/asm-offsets.s
  CHK     include/generated/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/util.o
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTLD  scripts/dtc/dtc
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  CC      scripts/mod/devicetable-offsets.s
  GEN     scripts/mod/devicetable-offsets.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/pnmtologo
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
  CC      init/main.o
  CHK     include/generated/compile.h
  CC      init/version.o
  CC      init/do_mounts.o
  CC      init/do_mounts_initrd.o
  LD      init/mounts.o
  CC      init/initramfs.o
  CC      init/calibrate.o
  CC      init/init_task.o
  LD      init/built-in.o
  HOSTCC  usr/gen_init_cpio
  ./scripts/gen_initramfs_list.sh: Cannot open '../arc_initramfs/'
usr/Makefile:73: recipe for target 'usr/initramfs_data.cpio.gz' failed
make[1]: *** [usr/initramfs_data.cpio.gz] Error 1
Makefile:943: recipe for target 'usr' failed
make: *** [usr] Error 2
palminha at palminha-vm:~/src/kernels/linux-mainline-next$ 
Quoted 27 lines · Alexey Brodkin

Hi Carlos,

Quoted 4 lines · On Mon, 2016-01-04@14:55 +0000, [email protected] wrote:

From: Carlos Palminha <palminha at synopsys.com>

Cannot compile kernel with INITRAMFS SOURCE option. Please move this option to a buildroot patch.

First of all if your problem is only related to Buildroot then there's not much sense in adding linux-snps-arc at lists.infradead.org which is used for pure Linux kernel discussions.

Then even in case of Buildroot CONFIG_INITRAMFS_SOURCE could be a problem only if you don't set Buildroot's BR2_TARGET_ROOTFS_INITRAMFS=y, see how it is done in snps_axs101_defconfig here
https://git.busybox.net/buildroot/tree/configs/snps_axs101_defconfig#n7

What happens if BR2_TARGET_ROOTFS_INITRAMFS=y then existing in kernel's defconfig CONFIG_INITRAMFS_SOURCE gets overridden with new value, see
https://git.busybox.net/buildroot/tree/linux/linux.mk#n217

Now if you really want to not use built-in kernel initramfs then simplest thing to do is to run "make linux-menuconfig" from your Buildroot's folder and disable or set with nothing CONFIG_INITRAMFS_SOURCE.

-Alexey

#3 lore raw

PATCH 1/1 arc: Removed local initramfs source file from axs101 configuration.

Quoted 6 lines · Carlos Palminha

Hi Alexey,

Probably my e-mail comments before the patch mislead you...
If you download the kernel source and try to compile it, it won't work because of the INITRAMFS pointing to a non-existing directory. (check log below)

That's why that option should be removed from the standard kernel.

Since the axs101 DT cmdline lacks any reference to root device - how does this unmodified kernel boot anyways w/o changing DT. Does uboot provide the cmdline for rootfs ?

The reason we've had initramfs for ages (vs. relying on uboot) is because we can't have uboot based workflow primarily because Alexey / I have 1 AXS MB and we constantly keep switching between 700 and HS builds.

I think you can use KCONFIG_ALLCONFIG (grep in Documentation) to override the INITRAMFS !

-Vineet

#4 lore raw

PATCH 1/1 arc: Removed local initramfs source file from axs101 configuration.

Hi Vineet,

Quoted 7 lines · Vineet Gupta
Quoted 6 lines · Carlos Palminha

Hi Alexey,

Probably my e-mail comments before the patch mislead you...
If you download the kernel source and try to compile it, it won't work because of the INITRAMFS pointing to a non -existing directory. (check log below)

Quoted 5 lines
Quoted 1 line

That's why that option should be removed from the standard kernel.

Since the axs101 DT cmdline lacks any reference to root device - how does this unmodified kernel boot anyways w/o changing DT. Does uboot provide the cmdline for rootfs ?

Indeed if initramfs is not built-in vmlinux/uImage then kernel command-line must be adjusted to point to real root device.

This could be done in 2 ways:

[1] Manually modify "bootargs" value in arch/arc/boot/dts/axs10{1|3}.dts
[2] In case of U-Boot it's possible to load device tree blob together with uImage and in that case U-Boot's "bootargs" env variable will override the one in .dtb

-Alexey

#5 lore raw

PATCH 1/1 arc: Removed local initramfs source file from axs101 configuration.

In reply to Vineet Gupta

Hi guys,

I don't think maintaining that flag this in the kernel is correct... the kernel simply doesn't compile out of the box. If you grep for CONFIG_INITRAMFS_SOURCE, ARC is the only architecture that uses that kernel flag by default pointing to an external directory. I don't think this is proper to have it like this by default from the kernel point of view.

Regards,
C.Palminha

palminha at PALMINHA-E7440 ~/Development/linus.git.linux ((v4.3))

$ grep -r INITRAMFS_SOURCE *|grep configs
arch/arc/configs/axs101_defconfig:CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
arch/arc/configs/axs103_defconfig:CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
arch/arc/configs/axs103_smp_defconfig:CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
arch/arc/configs/nsimosci_defconfig:CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
arch/arc/configs/nsimosci_hs_defconfig:CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
arch/arc/configs/nsimosci_hs_smp_defconfig:CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
arch/arc/configs/nsim_700_defconfig:CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
arch/arc/configs/nsim_hs_defconfig:CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
arch/arc/configs/nsim_hs_smp_defconfig:CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
arch/arc/configs/tb10x_defconfig:CONFIG_INITRAMFS_SOURCE="../tb10x-rootfs.cpio"
arch/mips/configs/nlm_xlr_defconfig:CONFIG_INITRAMFS_SOURCE=""
arch/mips/configs/rt305x_defconfig:CONFIG_INITRAMFS_SOURCE=""
arch/unicore32/configs/unicore32_defconfig:#CONFIG_INITRAMFS_SOURCE="arch/unicore/ramfs/ramfs_config"
arch/xtensa/configs/common_defconfig:CONFIG_INITRAMFS_SOURCE=""
Quoted 21 lines · Vineet Gupta
Quoted 6 lines · Carlos Palminha

Hi Alexey,

Probably my e-mail comments before the patch mislead you...
If you download the kernel source and try to compile it, it won't work because of the INITRAMFS pointing to a non-existing directory. (check log below)

That's why that option should be removed from the standard kernel.

Since the axs101 DT cmdline lacks any reference to root device - how does this unmodified kernel boot anyways w/o changing DT. Does uboot provide the cmdline for rootfs ?

The reason we've had initramfs for ages (vs. relying on uboot) is because we can't have uboot based workflow primarily because Alexey / I have 1 AXS MB and we constantly keep switching between 700 and HS builds.

I think you can use KCONFIG_ALLCONFIG (grep in Documentation) to override the INITRAMFS !

-Vineet