arc: Removed local initramfs source file from axs101 configuration.
diff mbox

Message ID 1451919315-18115-1-git-send-email-palminha@synopsys.com
State New
Headers show

Commit Message

Carlos Palminha Jan. 4, 2016, 2:55 p.m. UTC
From: Carlos Palminha <palminha@synopsys.com>

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(-)

Comments

Alexey Brodkin Jan. 7, 2016, 11:20 p.m. UTC | #1
Hi Carlos,

On Mon, 2016-01-04 at 14:55 +0000, palminha@synopsys.com wrote:
> From: Carlos Palminha <palminha@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@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
Carlos Palminha Jan. 9, 2016, 12:25 a.m. UTC | #2
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@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@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@palminha-vm:~/src/kernels/linux-mainline-next$ 


On 07-01-2016 23:20, Alexey Brodkin wrote:
> Hi Carlos,
> 
> On Mon, 2016-01-04 at 14:55 +0000, palminha@synopsys.com wrote:
>> From: Carlos Palminha <palminha@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@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
>
Vineet Gupta Jan. 11, 2016, 7:47 a.m. UTC | #3
On Saturday 09 January 2016 05:55 AM, Carlos Palminha wrote:
> 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
Alexey Brodkin Jan. 11, 2016, 7:59 a.m. UTC | #4
Hi Vineet,

On Mon, 2016-01-11 at 07:47 +0000, Vineet Gupta wrote:
> On Saturday 09 January 2016 05:55 AM, Carlos Palminha wrote:
> > 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 ?

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
Carlos Palminha Jan. 13, 2016, 1:13 a.m. UTC | #5
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@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=""

On 11-01-2016 07:47, Vineet Gupta wrote:
> On Saturday 09 January 2016 05:55 AM, Carlos Palminha wrote:
>> 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
>

Patch
diff mbox

diff --git a/arch/arc/configs/axs101_defconfig b/arch/arc/configs/axs101_defconfig
index f1ac981..3d14cf8 100644
--- a/arch/arc/configs/axs101_defconfig
+++ b/arch/arc/configs/axs101_defconfig
@@ -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