Cleanup docs based on latest research and testing

This commit is contained in:
2022-11-12 06:45:24 +00:00
parent afcd58dd84
commit f36370a661
+19 -27
View File
@@ -23,40 +23,28 @@ Boot Flow
`UBIBoot <https://github.com/pcercuei/UBIBoot>`_ `UBIBoot <https://github.com/pcercuei/UBIBoot>`_
_______ _______
- Bootloader for launching a Linux Kernel off a UBI partition - Bootloader for launching a Linux Kernel off a UBI partition
- This seems like it is used all over the place, but none of the images that I've looked at are using an UBI partition. - Not really sure what a UBI partition is
- They have been FAT32 - None of the images that I've looked at are using an UBI partition for ``/boot``, they have been FAT32
- I should double check this, otherwise I'm a bit confused here. - All the SDCard images have this program written to them via ``dd``
- Maybe all the SDCard images have this program written to their first 512 bytes (MBR style) - The line that writes this to adam image the image is `here <https://github.com/eduardofilo/RG350_adam_image/blob/81b3e833640b8f1db69371dae47dabe248690dc9/build.sh#L208>`_
- This would explain why the base offset for the ``/boot`` partition on the images is such a high number
- Is there a UBI partition that launches before the kernel in the FAT32 partition is loaded?
- This would probably not be visible when mounting the images
- I should reinvestigate this
- The Adam Image build scripts would probably be a good reference
- The line that does this is `here <https://github.com/eduardofilo/RG350_adam_image/blob/81b3e833640b8f1db69371dae47dabe248690dc9/build.sh#L208>`_
Kernel Kernel
______ ______
- The canonical source repo lives `here <https://github.com/OpenDingux/linux>`_.
- It is probably best to use the OpenDingux built kernel for now. - Kernel sources defconfig lives `here <https://github.com/OpenDingux/linux/blob/jz-6.1/arch/mips/configs/gcw0_defconfig>`_.
- Buildroot defconfig lives `here <https://github.com/OpenDingux/buildroot/blob/opendingux/configs/od_gcw0_defconfig>`_.
- It is probably best to use the OpenDingux kernel fork for now.
- It looks like there is some upstreaming working being done, but the status of that in unknown. - It looks like there is some upstreaming working being done, but the status of that in unknown.
- It would be cool to extract this from the buildroot flow so it could be built independently. - Building with the OpenDingux defconfig results in a bootable kernel that is in a compatible format for the existing images
- Changing the kernel format would probably require modifying the UBIBoot build
- One known issue with the latest OpenDingux kernel is that the display output doesn't work. - One known issue with the latest OpenDingux kernel is that the display output doesn't work.
- This seems to be due to a conflict in the HDMI driver. - This is fixed based on my testing and `this issue <https://github.com/OpenDingux/buildroot/issues/77>`_.
- I think disabling HDMI or removing the kernel module if there one might work around this.
- This might be fixed now based on `this thread <https://github.com/eduardofilo/RG350_adam_image/issues/262>`_ on the Adam Image issue tracker.
- I think this was a seperate issue based on the fact that the `fix <https://github.com/eduardofilo/RG350_adam_image/commit/f2c60849c90eb3ba6aab196604e8f66cce6b1d6e>`_ was in the Adam Image build scripts.
- Adam Image is using too old of a OpenDingux base to have hit this issue, as it was discovered in May 2022 [1]_
- One interesting tidbit from this thread is that the `OpenDingux maintainer seems to be working on fixing this issue <https://github.com/eduardofilo/RG350_adam_image/issues/262#issuecomment-1168830000>`_.
- This is helpful, as the github issue that this same person opened has no replies. [1]_
- This person might be overstating that the maintainer knowns, not sure here.
`Mininit <https://github.com/OpenDingux/mininit>`_ `Mininit <https://github.com/OpenDingux/mininit>`_
_______ _______
- Mininit is a bootloader that allows loading the root filesystem from a squashfs image called `rootfs.squashfs`. - Mininit is a bootloader that allows loading the root filesystem from a squashfs image called ``rootfs.squashfs``.
- It also supports loading kernel modules from a squashfs image called ``modules.squashfs``. - It also supports loading kernel modules from a squashfs image called ``modules.squashfs``.
- After it mounts all the required filesystems, control is handed off to the ``/sbin/init`` binary in the mounted rootfs [2]_. - After it mounts all the required filesystems, control is handed off to the ``/sbin/init`` binary in the mounted rootfs [1]_.
Booting Debian Booting Debian
@@ -66,6 +54,11 @@ Creating a boot partition
_________________________ _________________________
- TODO - TODO
Building the OpenDingux Kernel
______________________________
- `Docker based flow to build the OpenDingux kernel <https://git.ohea.xyz/gcwzero/opendingux-kernel-build>`_
- This builds the RC of kernel 6.1 (and also can support older kernel versions)
Creating a mips32le squashfs rootfs Creating a mips32le squashfs rootfs
___________________________________ ___________________________________
- `Docker based flow to build rootfs <https://git.ohea.xyz/gcwzero/debian-rootfs>`_ - `Docker based flow to build rootfs <https://git.ohea.xyz/gcwzero/debian-rootfs>`_
@@ -94,5 +87,4 @@ Useful Links
Citations Citations
========= =========
.. [1] https://github.com/OpenDingux/buildroot/issues/77 .. [1] https://github.com/OpenDingux/mininit#rootfs-image-layout
.. [2] https://github.com/OpenDingux/mininit#rootfs-image-layout