pieroproietti / penguins-eggs

On the road of Remastersys, Refracta, Systemback and father Knoppix!
https://penguins-eggs.net
406 stars 47 forks source link

ERROR Objects are not valid as a React child #396

Open jon-bit opened 2 months ago

jon-bit commented 2 months ago

I have no clue what is means or why it is doing this but I made my own kernel, installed somethings here and their and now when I install I get this after going throw the CLI install process. I have used 10.0.038 and 39 but the result is the same and I have no clue why. @pieroproietti and ideas?

 ERROR Objects are not valid as a React child (found: [object Error]). If you
       meant to render a collection of children, use an array instead.

 /usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@0.29.2_react@18.3.1
 /node_modules/react-reconciler/cjs/react-reconciler.development.js:4279:9

 4276:
 4277: function throwOnInvalidObjectType(returnFiber, newChild) {
 4278:   var childString = Object.prototype.toString.call(newChild);
 4279   throw new Error("Objects are not valid as a React child (found: " + 
 :   (childString === '[object Object]' ? 'object with keys {' + 
     Object.keys(newChild).join(', ') + '}' : childString) + "). " + 'If you 
     meant to render a collection of children, use an array ' + 'instead.');
 4280: }
 4281:
 4282: function warnOnFunctionType(returnFiber) {

 -throwOnInvalidObje (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconcile
  ctType            r@0.29.2_react@18.3.1/node_modules/react-reconciler/cjs/rea
                    ct-reconciler.development.js:4279:9)
 -createChil (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@0.29.2
            _react@18.3.1/node_modules/react-reconciler/cjs/react-reconciler.de
            velopment.js:4531:7)
 -reconcileChildren (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler
  rray             @0.29.2_react@18.3.1/node_modules/react-reconciler/cjs/react
                   -reconciler.development.js:4796:25)
 -reconcileChildFi (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@
  ers             0.29.2_react@18.3.1/node_modules/react-reconciler/cjs/react-r
                  econciler.development.js:5213:16)
 -reconcileChild (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@0.
  en            29.2_react@18.3.1/node_modules/react-reconciler/cjs/react-recon
                ciler.development.js:10359:28)
 -updateHostCompo (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@0
  ent            .29.2_react@18.3.1/node_modules/react-reconciler/cjs/react-rec
                 onciler.development.js:11126:3)
 -beginWor (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@0.29.2_r
          eact@18.3.1/node_modules/react-reconciler/cjs/react-reconciler.develo
          pment.js:12830:14)
 -beginWork$ (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@0.29.2
            _react@18.3.1/node_modules/react-reconciler/cjs/react-reconciler.de
            velopment.js:19608:14)
 -performUnitOfW (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@0.
  rk            29.2_react@18.3.1/node_modules/react-reconciler/cjs/react-recon
                ciler.development.js:18742:12)
 -workLoopSy (/usr/lib/penguins-eggs/node_modules/.pnpm/react-reconciler@0.29.2
  c         _react@18.3.1/node_modules/react-reconciler/cjs/react-reconciler.de
            velopment.js:18648:5)
jon-bit commented 2 months ago

Also, I made my own kernel (patched 6.11.0) if that helps.

pieroproietti commented 2 months ago

This come from ink, the module used for the installer TUI. It use react on CLI, but it's the same used for web and others.

Why happen and that to do with your kernel I don't know... But it's curious.

jon-bit commented 2 months ago

Let me try with out the kernel. I'll let you know what happens. (But I'll need a while)

pieroproietti commented 2 months ago

This Is the repo of ink https://github.com/vadimdemedes/ink

jon-bit commented 2 months ago

Well... It worked ... Let me try one more time.

jon-bit commented 2 months ago

Hmmmmmm. Did not work with the new kernel... Is their a way to increase the size of the boot partition in CLI install? That might be OK for what I'm trying to do.

jon-bit commented 2 months ago

Sorry I meant to add @pieroproietti . After all the crater would know the most, of this AMAZING project.

jon-bit commented 2 months ago

Hmmmmm. Well the GUI works...But not the CLI.

jon-bit commented 2 months ago

OK I just found out that it is the ENCRYPTION that does not work GUI or CLI install. @pieroproietti any idea?

pieroproietti commented 2 months ago

To put it in order. but we must to know how ! :-)

jon-bit commented 2 months ago

I have no clue why. BUT if you do the CLI encrypted WITHOUT my kernel it does work. Is their any kernel mods you need for luks? maybe they are not on?

pieroproietti commented 2 months ago

We must make a tempt, just send me - in same way - your kernel and I will try... don't see other way. But I'm not an expert of kernel btw...

jon-bit commented 2 months ago

It's just kernel 6.11 with these patches: 1.patch

index dd92361f41b3..f0a9ae22f691 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -7556,7 +7556,7 @@ static u8 vmx_get_mt_mask(struct kvm_vcpu *vcpu, gfn_t gfn, bool is_mmio)
                return MTRR_TYPE_UNCACHABLE << VMX_EPT_MT_EPTE_SHIFT;
        if (!kvm_arch_has_noncoherent_dma(vcpu->kvm))
-               return (MTRR_TYPE_WRBACK << VMX_EPT_MT_EPTE_SHIFT) | VMX_EPT_IPAT_BIT;
+               return (MTRR_TYPE_WRBACK << VMX_EPT_MT_EPTE_SHIFT);
        if (kvm_read_cr0(vcpu) & X86_CR0_CD) {
                if (kvm_check_has_quirk(vcpu->kvm, KVM_X86_QUIRK_CD_NW_CLEARED))

2.patch

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 72c4e6b39..043c97b3c 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -2382,8 +2382,10 @@ static int hva_to_pfn_remapped(struct vm_area_struct *vma,
    * would then underflow the refcount when the caller does the
    * required put_page. Don't allow those pages here.
    */
-   if (!kvm_try_get_pfn(pfn))
-   r = -EFAULT;
+   if (!kvm_try_get_pfn(pfn)) {
+       //r = -EFAULT;
+       printk("Not force EFAULT: %s %d r = %d, pfn = 0x%016llx\n", __FUNCTION__, __LINE__, r, pfn);
+   }

3.patch

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index c875f1cdd..6d7664a1f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -1143,8 +1143,10 @@ static int amdgpu_ttm_tt_populate(struct ttm_device *bdev,
    if (ret)
        return ret;

-   for (i = 0; i < ttm->num_pages; ++i)
+   for (i = 0; i < ttm->num_pages; ++i) {
        ttm->pages[i]->mapping = bdev->dev_mapping;
+       page_ref_inc(ttm->pages[i]);
+   }

    return 0;
}
@@ -1174,8 +1176,10 @@ static void amdgpu_ttm_tt_unpopulate(struct ttm_device *bdev,
    if (ttm->page_flags & TTM_TT_FLAG_EXTERNAL)
        return;

-   for (i = 0; i < ttm->num_pages; ++i)
+   for (i = 0; i < ttm->num_pages; ++i) {
        ttm->pages[i]->mapping = NULL;
+       page_ref_dec(ttm->pages[i]);
+   }

and in .config: CONFIG_UDMABUF=y CONFIG_X86_X2APIC=y CONFIG_DRM_VIRTIO_GPU=y CONFIG_TRANSPARENT_HUGEPAGE=n

after that build and install

jon-bit commented 2 months ago

1 more update

I tryed installing the kernel (6.11) but booting the iso off another (6.8.0) and... It failed again. Strange.

edit: Yes it is the encryption. I tryed the same thing with out encryption and It seem to be flawless(at least not error).

jon-bit commented 2 months ago

@pieroproietti I can just install the kernel later after putting in the root dir. How can I make the boot partition bigger on install(CLI)?

jon-bit commented 2 months ago

OK, I have another update. kernel 6.11.1 Is most likely the problem. I have installed 6.6.53 and it worked.

jon-bit commented 2 months ago

Never mind it failed. So it is anything that is a costume kernel, with encryption by the looks of it.

jon-bit commented 1 month ago

@pieroproietti I just wanted to give an big update. LVM2 does not work as well. I can try one more thing. Affter that I have no clue what to do. Do you have any ideas?

jon-bit commented 1 month ago

OK none of the disk options work if it is encrypted. I will have to try again tomorrow if anyone has suggestions.

pieroproietti commented 1 month ago

Hi @jon-bit I'm really sorry if not work, that to say it's difficult for me to understand what are doing, with kernel, LVM, encrypt and so on.

My experience on Linux is mostly relative to remaster, trying to join more distros in one, in same way... here I became enought expert.

Unfortunately I have not idea about that to suggest, just can say: eggs is plain - that is in the janitor - that re-produce.

Today after a week - I was ready to release from monday - I was able to solve a problem arise with manjarolinux and biglinux. At last was easy; just the lacks of a package sudo pacman -S manjaro-tools-iso-git. But just this, make me crazy for the week.

Well, I learned others things in the while, and now I will release the new version.

A big hug for your effort!

jon-bit commented 1 month ago

Hmmmmmmmmm. That give me an idea. I'm going to take my old kernel .config and just slap it on top of my new one lets see if it works.

jon-bit commented 1 month ago

OK it did not. One last idea. I will make a non encrypted egg and then make one off of that. After that I'm out.

jon-bit commented 1 month ago

Nope. Did'nt work. I'm out of ideas.

jon-bit commented 1 month ago

OK I went throw my last ideas and none worked. I built the kernel without the patch or and only with the .config parameters I need in the first place. Regardless it failed. I might be able to slip around this with a bigger /boot partition. @pieroproietti is their a way to make the /boot directory bigger on eggs on install with the CLI?

pieroproietti commented 1 month ago

The most easy way Is just to edit /src/krill/modules/partition.ts

Change the partitition size and reinstall eggs from your source following this.

I think you can.

jon-bit commented 1 month ago

Sorry for the late update. Yes this does work. I don't know if the bug is still active if you use your own kernel so I will keep it open for now but making the /boot lager does work at least to some degree if you build it in advance.