| *** amccarthy is now known as Guest9753 | 00:49 | |
| *** amccarthy_ is now known as amccarthy | 00:49 | |
| nightishaman | mal: https://pastebin.com/kdWV8rtr the issue is happening also with the lineageos boot.img and vendor_kernel_boot.img. I might test tomorrow what the kernel prints by booting full LineageOS android instead of hybris init, but I think it has to do with the issue that pKVM can't load the protected modules | 02:29 |
|---|---|---|
| T42 | <nightishaman> It’s either modprobe is broken or something in the kernel is broken. I will enable a higher loglevel tomorrow. Also Claude suggested disabling pKVM | 02:44 |
| nightishaman | mal: so i conclude, the recovery successfully loads it, with linageos kernel and vendor kernel boot it is broken, so the only angle is that the init_boot image has something that breaks the early load | 20:20 |
| nightishaman | and unless that is fixed or i disable pkvm, it wont boot | 20:20 |
| nightishaman | i didnt test that yet | 20:21 |
| mal | check what the recovery does? | 20:35 |
| mal | maybe it disables watchdog or something | 20:35 |
| mal | check the .rc files at least | 20:35 |
| mal | in recovery ramdisks | 20:35 |
| nightishaman | the issue is certainly due to the failed pKVM load, pKVM loads even before init runs and calls modprobe to load the module. In hybris init_boot it fails with error code 11(EAGAIN) and the modules dont load, in android recovery it does load and the EL2 code is run, eliminating the issue | 20:36 |
| nightishaman | when the modules are not run in the pKVM context, they fail to load and the kernel panic happens because one variable can only be set one time and the module tries to register again and set that only once variable and fails. the memory of the variable is cleared because the first module is unloaded and the pointer points to other memory | 20:37 |
| nightishaman | just a question, where is modprobe on the hybris init_boot? | 20:38 |
| nightishaman | if u know that? | 20:38 |
| nightishaman | i think i found the issue | 20:42 |
| nightishaman | there is no modprobe on hybris-init_boot | 20:42 |
| nightishaman | stock android has it in init_boot at /system/bin/modprobe | 20:42 |
| nightishaman | which is where CONFIG_MODPROBE_PATH in kernel points to | 20:42 |
| nightishaman | mal: where does the modprobe come from that the init-script uses? | 20:44 |
| mal | it's prebuilt https://github.com/mer-hybris/android_external_busybox_prebuilt | 20:46 |
| mal | modprobe is in busybox | 20:46 |
| T42 | <nightishaman> hmm, pKVM can’t call that probably | 20:47 |
| T42 | <nightishaman> Can we include a separate busybox in the ramdisk? | 20:51 |
| T42 | <nightishaman> I mean modprobe | 20:51 |
| mal | would it work if you add some symlink into init ramdisk so there would be modprobe there in some usual path? | 20:51 |
| mal | well you could, the init content is in hybris/hybris-boot/initramfs | 20:52 |
| T42 | <nightishaman> How would you do it? (re @SailfishFreenodeIRCBridgeBot: <mal>would it work i...) | 20:53 |
| mal | in that initramfs some suitable location there, maybe ito bin or sbin or whatever | 20:59 |
| mal | not sure where it looks for it | 20:59 |
| nightishaman | no i meant how i would do the symlink so it correctly calls it, it uses call_usermodehelper_exec directly | 21:01 |
| nightishaman | so i cant do busybox modprobe | 21:01 |
| mal | which what parameter does it call that? | 21:01 |
| mal | if you happen to know that | 21:02 |
| mal | wondering what path it uses | 21:03 |
| nightishaman | mal: https://github.com/maltesermailo/android_kernel_pantah/blob/hybris-23.2/arch/arm64/kvm/pkvm.c#L683 | 21:04 |
| nightishaman | it uses whatever CONFIG_MODPROBE_PATH is set to | 21:04 |
| nightishaman | in my final .config that is /system/bin/modprobe | 21:05 |
| mal | so add that under hybris/hybris-boot/initramfs/ so new folder system/bin there and the either symlink or copy busybox there as modprobe | 21:07 |
| mal | if you want to copy it the busybox binary is under external/busybox/arm64/ | 21:08 |
| nightishaman | will it automatically call modprobe if i call it modprobe? | 21:29 |
| nightishaman | or do i have to modify the kernel to call busybox modprobe | 21:30 |
| T42 | <b100dian> mal - I am curios if you tested fp5 with `NUM_BUFFER_SLOTS / 2` | 21:35 |
| mal | @b100dian not yet, I did build it already but didn't yet install on device | 21:49 |
| mal | nightishaman: since symlinks work it should just work as copy also | 21:49 |
| T42 | <b100dian> ok. Just wanted to say that setting MAX_MAX_ACQUIRED_BUFFERS does not work (works, but probably gstreamer disagrees). So halving the slots might be the way to go | 21:50 |
| nightishaman | mal: Hmm, with the busybox version I got error code 256, with the one i stole from stock android i get error 11 again | 22:35 |
| nightishaman | im gonna rebuild the kernel and drop the -q flag from the modprobe invocation, i wanna know whats going | 22:47 |
| mal | you used symlink or copied? | 22:47 |
| nightishaman | with busybox, only symlink | 22:47 |
| mal | maybe try copying it | 22:47 |
| nightishaman | with modprobe from android, i copied it | 22:47 |
| nightishaman | which is toolbox_ramdisk actually | 22:47 |
| mal | try to copy sfos busybox | 22:48 |
| nightishaman | ill try after my kernel build is finished | 22:48 |
| nightishaman | without the -q flag it should print to dmesg | 22:49 |
| nightishaman | again error 256 | 23:07 |
| nightishaman | im gonna recompile the kernel with passing the flag -vv which should debug print | 23:07 |
| nightishaman | if that doesnt work, ill place a small script at /system/bin/modprobe instead that calls /sbin/busybox modprobe with the output stream redirected to dev/kmsg | 23:07 |
| mal | did you already copy busybox? | 23:09 |
| nightishaman | yes | 23:11 |
| nightishaman | same error as symlink | 23:11 |
| nightishaman | 256 | 23:11 |
| mal | and you copied it from external/busybox/arm64? | 23:12 |
| nightishaman | yes | 23:12 |
| nightishaman | for some reason it doesnt print my debug messages | 23:42 |
Generated by irclog2html.py 2.17.1 by Marius Gedminas - find it at https://mg.pov.lt/irclog2html/!