VoLTE Implementation For Google Pixel 3a/3a XL
-
I'm performing this step now. I'm currently waiting on it to complete.
@Eric-H said in VoLTE Implementation For Google Pixel 3a/3a XL:
Now that the project has been forked, you can proceed to step 2.
In the new fork, in the left menu, go to Build->Pipelinesclick on new pipeline button. confirm. Wait - the build process might take several tens of minutes. .img files can be downloaded from the devel-flashable artifact
I'm assuming the step you listed above handles this part from the documentation, now?
Building, installing and running
After you’ve completed your deviceinfo and filled in all needed stuff, its time you get to the main part, the build. For this just run: ./build.sh -b workdir
That should download all the needed toolchains and then the kernel, and finally build everything. This process may take about 5 to 50 minutes to build the kernel.
After your kernel is done building, you will have to build the rootfs. For this, just execute this:
./build/prepare-fake-ota.sh out/device_<your device's codename>_usrmerge.tar.xz ota This will download the rootfs, extract it and pack it into tarballs for our final script to create flashable images.
Next up, run:
./build/system-image-from-ota.sh ota/ubuntu_command images This will convert the tarballs into flashable images, and your images will be stored in the images/ directory. There will be a number of files depending on how you configured your deviceinfo. But the basic file structure will be as given:
images/
├── boot.img
├── rootfs.img
└── system.imgThe boot.img will be flashed onto the boot partition of the phone. The system.img and rootfs.img are interchangable. rootfs.img is pushed to the data partition as ubuntu.img if you didn’t include systempart in deviceinfo’s cmdline. Otherwise, system.img is flashed to your system partition.
-
It looks like the pipeline is stuck. I'm getting this on GitLab:
"This job is stuck because of one of the following problems. There are no active runners online, no runners for the protected branch , or no runners that match all of the job's tags: ubports
Go to project CI settings" -
I got a runner and tried to run it, but the build failed. I may need some assistance with Gitlab as I haven't used it before. I'm more used to building on a local machine. It will take me a while to read up on it, and I don't want to slow anyone down.
Here are the changes I made to deviceinfo if someone wants to fork and try it on their own:
deviceinfo_kernel_cmdline="console=ttyMSM0,115200n8 androidboot.console=ttyMSM0 printk.devkmsg=on msm_rtb.filter=0x237 ehci-hcd.park=3 service_locator.enable=1 firmware_class.path=/vendor/firmware cgroup.memory=nokmem lpm_levels.sleep_disabled=1 loop.max_part=7 androidboot.boot_devices=soc/7c4000.sdhci androidboot.super_partition=system buildvariant=user"
deviceinfo_bootimg_header_version="2" deviceinfo_bootimg_os_version="12.0.0" deviceinfo_bootimg_os_patch_level="2022-05"
This was taken from sargo-sp2a.220505.008-factory-071e368a which is the September 2022 build -
12.1.0 (SP2A.220505.008, Sep 2022). -
@atarilinux I haven't done much with gitlab but have experience with github runners. I'll try to get something going this weekend. I gather the error in your last build is due to not running as the root user. Maybe try putting a "sudo" in front of the apt commands in .gitlab-ci.yml ?
-
@atarilinux
unsure but maybesystempart=/dev/mapper/system
is missing in cmdlinefrom porting Telgram Group :
system.img and rootfs.img are the same thing from a fastboot POV. your userdata should be freshly formatted as ext4, but yes that's what the bottom of the doc also explains, which one you need and how to flash it depends on if you included e.g. systempart=/dev/mapper/system on cmdline for devices with super partition
also unsure about other fields
-
@atarilinux
it seem this this file should be updated too :
https://gitlab.com/atarilinux/ubports-ubuntu-touch-google-sargo-volte/-/blob/main/.gitlab-ci.yml -
That's what I'm thinking too. When I looked at it again today, it looked like permission was denied because it wasn't running as sudo. I was using the runner on my local machine. I noticed it didn't prompt me for my password which was interesting. So, yes, we probably need to add sudo to the file.
-
Thanks for the info! Just to verify, should work for a retro-fitted partition too, right? I'll check this out in the file and see if I can find anything else that may need to be added.
-
Thanks! I was looking at that one when I was messing with the runner. Good to know we are on the right track with thinking something was going on with that part!
-
-
Thanks! This is a great post! Very helpful!
-
I added Sudo to the Apt statements in .gitlab-ci.yml. I also added systempart=/dev/mapper/system to the deviceinfo file.
For this part,
https://lucaweiss.eu/post/2023-03-30-retrofit-dynamic-partition/I'm trying to figure out where to add this on github. The code on github is referencing a number of other githubs by "clone." I'm trying to untangle it to get a since of what happens when and where. I want to make sure I'm not missing anything.
-
@atarilinux said in VoLTE Implementation For Google Pixel 3a/3a XL:
What you have stated above is correct to the best of my knowledge. Here is the other part from the QA call:
*Source Material - Not Image
*Information on image build process, but not how to install it
*Built on top of latest Android 12.1 version for the Google Pixel 3a, but build not completedSo....it looks like we need to:
- Finish the build (This part is the least specific. Finish what? This is the main issue due to it not being specific. Maybe it is only the retro-fitted partition issue? A lot of data may need to be checked to see what is complete. Here is the bottleneck in completing development.)
...snip...
I think this, at the very least, is what you're running into. For one thing, the LLVMgold library isn't referenced correctly by the build system. I was able to correct that but my make skills are simplistic and old and rusty. Am currently looking at a problem with the device tree.
- Finish the build (This part is the least specific. Finish what? This is the main issue due to it not being specific. Maybe it is only the retro-fitted partition issue? A lot of data may need to be checked to see what is complete. Here is the bottleneck in completing development.)
-
Yes, that is where I am stuck. I need to know what exactly is missing to complete the build. It's my first port, and I'm new to this. The port does reference other code via clone statements, so I have to look at that too. There are no comments that I am finding that tells me what does what. It will take me a while to figure out what each thing does and what goes where and when. I'm comparing other ports and reading some documentation, but it will be slow going on my own unfortunately.