Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

info: flash core-image-minimal into rb3gen2 qcs6490 #616

Open
Scott31393 opened this issue Jul 23, 2024 · 16 comments
Open

info: flash core-image-minimal into rb3gen2 qcs6490 #616

Scott31393 opened this issue Jul 23, 2024 · 16 comments

Comments

@Scott31393
Copy link
Contributor

Scott31393 commented Jul 23, 2024

Hi All,

Sorry for bothering. I'm working on top of your meta-qcom

My target is to run mainline linux kernel into rb3gen2 (6490) board. I want ask if you can share some guide to flash the yocto images generated with this layer. I'm able to build/flash the qcom bsp based on the following yocto manifest: https://github.com/quic-yocto/qcom-manifest/blob/qcom-linux-kirkstone/qcom-6.6.28-QLI.1.1-Ver.1.1.xml using qdl tool.

My plan is to do a test on mainline linux kernel. I think to flash those images into the board you are using a different partitioning schema with a different approach. When I'm trying to flash the bsp using the following cmd I'm getting:

fastboot flash boot ./boot-qcs6490-rb3gen2-qcom-armv8a.img
Sending 'boot' (8264 KB)                           OKAY [  0.444s]
Writing 'boot'                                     FAILED (remote: 'No such partition.')
fastboot: error: Command failed

Qcom bsp is providing efi partition once I flash all the images using qdl.
Maybe I need to build another image?

Do you have some tips/guide to share? :)
Many thanks in advance!

Thanks & Regards,
Tommaso

@Scott31393
Copy link
Contributor Author

Scott31393 commented Jul 23, 2024

Update:

Fixing the following issue from: recipes-kernel/images/linux-qcom-uki.bb

NOTE: Resolving any missing task queue dependencies
ERROR: /qualcom/yocto-mainline/poky/meta-qcom/recipes-kernel/images/linux-qcom-uki.bb:do_configure[depends], dependency ${@ in '      systemd-boot:do_deploy     virtual/kernel:do_deploy      ${@ '${INITRAMFS_IMAGE}:do_image_complete' if d.getVar('INITRAMFS_IMAGE') else ''}' does not contain exactly one ':' character.
 Task 'depends' should be specified in the form 'packagename:task'
ERROR: Command execution failed: Exited with 1

I'm able to bitbake esp-qcom-image using that image I can flash efi partition given by the vendor bsp using:

fastboot flash efi ./boot-qcs6490-rb3gen2-qcom-armv8a.img

Unfortunately now I'm getting some issue from the kernel that has no bootargs.
I guess this because KERNEL_CMDLINE_EXTRA variable is empty and the kernel is not able to mount the fs.

Booting Linux on physical CPU 0x0000000000 [0x412fd050]
Linux version 6.6.35-yocto-standard (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 14.1.0, GNU ld (GNU Binutils)
....
...
Call trace:
 dump_backtrace+0x90/0xe8
 show_stack+0x18/0x24
 dump_stack_lvl+0x48/0x60
 dump_stack+0x18/0x24
 panic+0x304/0x35c
 mount_root_generic+0x280/0x350
 mount_root+0x178/0x33c
 prepare_namespace+0x6c/0x2b0
 kernel_init_freeable+0x2e8/0x3e4
 kernel_init+0x28/0x1dc
 ret_from_fork+0x10/0x20
SMP: stopping secondary CPUs
Kernel Offset: disabled
CPU features: 0x0,c0000000,70020143,1000720b
Memory Limit: none
---[ end Kernel panic - not syncing: Invalid configuration from end user prevents continuing ]---

I will continue tomorrow :)

@Scott31393
Copy link
Contributor Author

Scott31393 commented Jul 23, 2024

Hi All,

Finally I'm able to run the core-image-minimal, below some steps. First of all I flash the qcom yocto image into the the qcs6490rb3gen2 board, or flash the prebuild images.

Then:

# step 1: build required yocto images

git clone git://git.yoctoproject.org/poky
git clone https://github.com/openembedded/meta-openembedded.git
cd poky
source oe-init-build-env ../build-qcom-armv8a

bitbake-layers add-layer ../meta-qcom
bitbake-layers add-layer ../meta-openembedded/

bitbake initramfs-qcom-image core-image-minimal esp-qcom-image
------------------------------------------------------------------------------------------

# step 2: create uki.efi image
# ukify tool is located at: tmp/sysroots-components/x86_64/systemd-boot-native/usr/bin/ukify

cd <deploy-dir>

ukify build --efi-arch=aa64  \
	--stub=./linuxaa64.efi.stub \
	--linux=./Image \
	--initrd=./initramfs-qcom-image-qcom-armv8a.cpio.gz \
	--cmdline="root=/dev/disk/by-partlabel/system rw rootwait console=ttyMSM0,115200n8 \
			earlycon pcie_pme=nomsi kernel.sched_pelt_multiplier=4 rcupdate.rcu_expedited=1 rcu_nocbs=0-7 k \
			pti=off kasan=off kasan.stacktrace=off no-steal-acc page_owner=on swiotlb=128" \
	--devicetree=./qcs6490-rb3gen2.dtb \
	--output=./uki.efi

# copy uki.efi into esp-qcom-image-qcom-armv8a.rootfs.vfat image (efi.img)

sudo mount esp-qcom-image-qcom-armv8a.rootfs.vfat /mnt
sudo cp uki.efi /mnt/EFI/Linux/linux-qcom-armv8a.efi
sudo umount /mnt
------------------------------------------------------------------------------------------

# step 3: flash efi and system partition

adb shell reboot bootloader
fastboot erase efi
fastboot erase system
fastboot flash efi ./esp-qcom-image-qcom-armv8a.rootfs.vfat
fastboot flash system ./core-image-minimal-qcom-armv8a.rootfs-20240723215932.ext4
fastboot reboot

core-image-minimal logs:

Poky (Yocto Project Reference Distro) 5.0+snapshot-e18d60deb0496f7c91f2de900d6c024b45b7910a qcom-armv8a /dev/ttyMSM0
qcom-armv8a login: root
root@qcom-armv8a:~# uname -a
Linux qcom-armv8a 6.6.35-yocto-standard #1 SMP PREEMPT Fri Jun 28 17:07:28 UTC 2024 aarch64 GNU/Linux

Question:

  • is there some supported image with hdmi and wayland backend enabled?

Thanks in advance,
Tommaso

@lumag
Copy link
Collaborator

lumag commented Jul 25, 2024

@Scott31393 For uki image you should be able to run bitbake linux-qcom-uki. If that doesn't work, we have an issue that must be fixed.

Regarding HDMI. Unfortunately the HDMI support wasn't backported yet, you can try combining the logic in #593 and the patch at https://lore.kernel.org/linux-arm-msm/[email protected]/

@lumag
Copy link
Collaborator

lumag commented Jul 25, 2024

Regarding wayland. This question is off-topic for the meta-qcom (it is purely a BSP and doesn't provide any higher-level integration). As a part of the RPB effort we have been providing the RPB-weston image, but this image hasn't been tested for quite a while.

@Scott31393
Copy link
Contributor Author

Scott31393 commented Jul 25, 2024

Hi @lumag,

@Scott31393 For uki image you should be able to run bitbake linux-qcom-uki. If that doesn't work, we have an issue that must be fixed.

I will work on fix that, thanks.

Regarding HDMI. Unfortunately the HDMI support wasn't backported yet, you can try combining the logic in #593 and the patch at https://lore.kernel.org/linux-arm-msm/[email protected]/

Thanks for sharing. Will do a try on this.

What about a new machine qcs6490.conf or rb3gen2.conf that inherit from generic qcom-armv8a.conf and put here some board specific customization like: KERNEL_CMDLINE_EXTRA and others? Do you agree on that or I'm completely wrong?

Thanks,
Tommaso

@lumag
Copy link
Collaborator

lumag commented Jul 25, 2024

The meta-qcom idea is to have a generic machines only. The rootfs should work on every supported board without the need to further customize it (such customizations often end up being poorly designed or not really fitting).
You can still put custom kernel command line options to qcom-armv8a.conf (or to local.conf), they are specied per the dtb.

KERNEL_CMDLINE_EXTRA[sdm845-db845c] ?= "clk_ignore_unused pd_ignore_unused"

@Scott31393
Copy link
Contributor Author

The meta-qcom idea is to have a generic machines only. The rootfs should work on every supported board without the need to further customize it (such customizations often end up being poorly designed or not really fitting). You can still put custom kernel command line options to qcom-armv8a.conf (or to local.conf), they are specied per the dtb.

KERNEL_CMDLINE_EXTRA[sdm845-db845c] ?= "clk_ignore_unused pd_ignore_unused"

Already saw that, thanks the same.
Thanks for sharing the idea behind.

Regards,
Tommaso

@Thejesh99
Copy link

#616 (comment) can anyone provide a more detailed yocto build for qualcomm robotics RB3 gen 2 vision kit

@ricardosalveti
Copy link
Contributor

#616 (comment) can anyone provide a more detailed yocto build for qualcomm robotics RB3 gen 2 vision kit

There is the downstream BSP which was released earlier this month (https://docs.qualcomm.com/bundle/publicresource/topics/80-70014-115/overview.html?product=1601111740013072 and https://github.com/quic-yocto/meta-qcom-hwe / https://github.com/quic-yocto/qcom-manifest). BSP is kirkstone based at the moment (work ongoing to have an updated version).

@Thejesh99
Copy link

can anyone give me the correct machine name for robotics rb3 gen 2

@Thejesh99
Copy link

how to check pre build images in the qualcomm robotics rb3 gen 3

@ricardosalveti
Copy link
Contributor

can anyone give me the correct machine name for robotics rb3 gen 2

qcm6490 on the downstream BSP.

@ricardosalveti
Copy link
Contributor

@Thejesh99
Copy link

I'm encountering an issue where no login page is shown while following the steps described at Qualcomm Documentation.

How can I flash the prebuilt images, and where can I find prebuilt images for the Qualcomm Robotics RB3 Gen 2 Vision Kit?
Screenshot from 2024-07-31 11-58-01

@ricardosalveti
Copy link
Contributor

I'm encountering an issue where no login page is shown while following the steps described at Qualcomm Documentation.

Would you mind sending your question at https://mysupport.qualcomm.com/supportforums/s/topic/0TO4V000000Ey0jWAC/qualcomm-linux? That would be the proper location for debugging issues with qualcomm linux itself.

@Thejesh99
Copy link

Thejesh99 commented Aug 6, 2024

how to remove existing image and flash new image
from the qualcomm robotics rb 3 gen 3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants