-
Notifications
You must be signed in to change notification settings - Fork 13
Qualcomm Linux Kernel
Qualcomm kernel repository hosts Qualcomm Linux kernel branches that support Qualcomm targets.
- qcom-next, is the mainline branch that follows each -rc release of upstream kernel
- qcom-next-staging, that helps prepare qcom-next
Repository | Details |
---|---|
https://github.com/qualcomm-linux/kernel-topics | QLI Mainline kernel topic branches repository based on upstream kernel |
https://github.com/qualcomm-linux/kernel-config | QLI Mainline kernel topic branch config repository that enumerates all topic branches to be used for qcom-next |
https://github.com/qualcomm-linux/kmake-image | Open Docker image for building kernel |
https://github.com/qualcomm-linux/kernel-checkers | Kernel checker project to run premerge (public) checks on kernel changes |
https://github.com/qualcomm-linux/automerge | automerge tool to merge & prepare qcom-next from kernel topic branches |
kernel changes are actually developed on topic branches that belong to kernel-topics repository. These topic branches are pulled into qcom-next to setup Qualcomm Linux kernel mainline.
At each upstream kernel release
- qcom-next-staging resets to latest upstream released -rc
- Each topic branch is pulled onto the new -rc base and a PR is raised to qcom-next-staging
- Once qcom-next-staging tests are clear, it is pushed to qcom-next
All development and corresponding PRs are raised on corresponding topic branches of kernel-topics repository.
You would need setup docker that can help build and package kernel images to flash on to the target. The following example captures how to fetch and build efi and dtb bins of the upstream Linux Kernel for QCS6490 Rb3Gen2.
git clone [email protected]:qualcomm-linux/kmake-image.git
cd kmake-image
docker build -t kmake-image .
alias kmake-image-run='docker run -it --rm --user $(id -u):$(id -g) --workdir="$PWD" -v "$(dirname $PWD)":"$(dirname $PWD)" kmake-image'
alias kmake='kmake-image-run make'
cd ..
git clone [email protected]:qualcomm-linux/kernel.git
git checkout origin/qcom-next
mkdir artifacts
wget -O artifacts/ramdisk.gz https://snapshots.linaro.org/member-builds/qcomlt/testimages/arm64/1379/initramfs-test-image-qemuarm64-20230321073831-1379.rootfs.cpio.gz
wget -O artifacts/systemd-boot-efi.deb http://ports.ubuntu.com/pool/universe/s/systemd/systemd-boot-efi_255.4-1ubuntu8_arm64.deb
dpkg-deb -xv artifacts/systemd-boot-efi.deb artifacts/systemd
cd linux
kmake O=../kobj defconfig
kmake O=../kobj -j$(nproc)
kmake O=../kobj -j$(nproc) dir-pkg INSTALL_MOD_STRIP=1
(cd ../kobj/tar-install ; find lib/modules | cpio -o -H newc -R +0:+0 | gzip -9 >> ../../artifacts/ramdisk.gz)
cd ..
kmake-image-run generate_boot_bins.sh efi --ramdisk artifacts/ramdisk.gz \
--systemd-boot artifacts/systemd/usr/lib/systemd/boot/efi/systemd-bootaa64.efi \
--stub artifacts/systemd/usr/lib/systemd/boot/efi/linuxaa64.efi.stub \
--linux kobj/arch/arm64/boot/Image \
--cmdline "${CMDLINE}" \
--output images
kmake-image-run generate_boot_bins.sh dtb --input kobj/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dtb \
--output images
The resulting efi.bin and dtb.bin are gathered in images directory and is ready to be booted on a QCS6490 RB3Gen2.
fastboot flash efi images/efi.bin
fastboot flash dtb_a images/dtb.bin
fastboot reboot
TBD
TBD