Port to Oneplus 2

  • @UniSuperBox

    What is this bull**** now lol

    (!gid_eq(attr->ia_gid, sbi->options.fs_gid))
    results in ->
    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:1220:6: error: incompatible type for argument 2 of 'gid_eq'
    (!gid_eq(attr->ia_gid, sbi->options.fs_gid ))) ||
    note: expected 'kgid_t' but argument is of type 'gid_t'

    and if i have

    (!gid_eq(make_kgid(NULL, attr->ia_gid), make_kgid(NULL, sbi->options.fs_gid)))
    it results in ->
    error: incompatible type for argument 2 of 'make_kgid'
    note: expected 'gid_t' but argument is of type 'kgid_t'

    so if i trust the second one, and its already kgid_t, why does it say its not in the first one...? and it has no .val value, so it has to be of type gid_t (what the first one says) so why doesnt the second one not work... what the fuck is going on there O.o

  • @SGCMarkus

    You'll need to take a look at the commit log that I sent in my last post. These are known bugs in the 3.10 kernel that you will need to fix.

  • @UniSuperBox applied all that already, and some more that produced similar errors afterwards, atm trying to apply that to everything else that produces errors that have todo with uid_t/kuid_t (gid) ... but that from my last post confuses me, because it says its the other, even though it isnt and should work with the first O.o

  • @SGCMarkus

    What file is that in? It looks like something with the filesystem, did you disable CONFIG_EXT4_FS_POSIX_ACL in the defconfig? You'll need to comment out or remove the line, not set it to No.

  • @UniSuperBox

    that error is in fs/exfat/exfat_super.c line ~1217 (may be a bit different from versio nto version what i found) in function "exfat_setattr".

    Another one:

    /home/markus/ubport_6/kernel/oneplus/msm8994/drivers/platform/msm/pft.c: In function 'pft_is_current_process_registered':
    /home/markus/ubport_6/kernel/oneplus/msm8994/include/linux/cred.h:332:24: error: incompatible types when initializing type 'u32' using type 'kuid_t'
     #define current_uid()  (current_cred_xxx(uid))
    /home/markus/ubport_6/kernel/oneplus/msm8994/drivers/platform/msm/pft.c:369:12: note: in expansion of macro 'current_uid'
      u32 uid = current_uid();
    In file included from /home/markus/ubport_6/kernel/oneplus/msm8994/include/linux/kernel.h:14:0,
                     from /home/markus/ubport_6/kernel/oneplus/msm8994/drivers/platform/msm/pft.c:48:
    /home/markus/ubport_6/kernel/oneplus/msm8994/drivers/platform/msm/pft.c: In function 'pft_inode_create':
    /home/markus/ubport_6/kernel/oneplus/msm8994/include/linux/dynamic_debug.h:64:16: warning: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'kuid_t' [-Wformat=]
    error, forbidden warning: dynamic_debug.h:64
      CC      drivers/rtc/rtc-lib.o
    /home/markus/ubport_6/kernel/oneplus/msm8994/scripts/Makefile.build:308: recipe for target 'drivers/platform/msm/pft.o' failed
    make[5]: *** [drivers/platform/msm/pft.o] Error 1
    make[5]: *** Waiting for unfinished jobs....

    Currently rebuilding without any CONFIG_EXT4_FS_POSIX_ACL in the defconfig, will update this post with the result.

  • @SGCMarkus One more thing, it doesn't look like I have any exfat enabled in my kernel. You might consider disabling it for yours, too.

  • @UniSuperBox disabled exfat now... couldnt get it compiled, at all
    Otherwise i had... atleast it felt like 1000 other errors in mainly the ipv4 and ipv6 files... with the uid and kuid stuff, got that fixed now and managed a successful build with building and building after error and fixing. Making a clean build now to make sure, and then lets see what happens, hopefully it will atleast do "a bit" more than earlier xD

  • So.. everything compiled, no error, flashed everything, now i just see the "wonderful" logo which comes before the boot animation for like... idk 10 min now. Phone gets kinda warm though, but i dont have access via USB.
    Is it normal that the first boot takes a while (even this long)?

    Aborted it though now... saw that it created a few folders in /data, user-data, system-data, android-data and i tried to push the modified adbd from the official guide which appearantly should start the adbd process before GUI is able to run. Didnt work 😕

    so... is it doing something during this process, or (which i kinda believe) did it fuck up somewhere... but atleast it doesnt instantly reboot anymore, which is good i guess xD

    The recovery created "boots", but without any GUI, just a black screen, but adb is running there

  • @SGCMarkus Awesome! You're exactly where I was with the Nexus 5X. There's something wrong with initializing the Android layer, and it seems that dbus is failing as well. Maybe @Flohack would be able to answer what to do from here?

  • Also noticed that the recovery cant mount any of the partitions, as it searches for /dev/block/bootdevice/by-name/ but thats not existing in the recovery it built. Dont know if thats on purpose or not?

    But its "good to know" that im not the only one having this problem xD

  • @SGCMarkus welcome to porting hell. We all came this way, sometimes there are solutions, sometimes not. Im on a business trip, reply to you soon. You need to boot, wait fir your warm devuce, boot recovery and try to get /proc/last_kmsg somehow. And plz use pastebin for it, not the forum

  • Cant get a /proc/last_kmsg 😕 doesnt exist ... i guess i gotta find a way to enable it?

    otherwise, i have the kmsg from the recovery, if helpful: link

    have fun/good luck on your business trip though ^^ i gotta survive 5 exams next week xD

  • @SGCMarkus

    You might want to try the information in this wiki article: https://wiki.ubports.com/wiki/How-to-work-around-missing-ADB-functionality

  • @UniSuperBox thanks, will try that too 🙂
    had no time the past few days, exams ^^ 2 left, but those are rather small so i have more time now 😃

    have a few other ideas too that i wanna check, like https://developer.ubuntu.com/en/phone/devices/porting-new-device/ at debugging, appearantly i can set break points, and it should start adb then, if it "breaks" (hopefully) and some other things a friend of mine (hes good with linux in general) told me

    will update here when im done with testing ^^

  • Nice to see someone working on OP2.
    I know Ubuntu Touch does not support MultiRom officially, but now we have it on XDA with kexec workaround!!

  • @Maxximo88 know that, already running on my phone 😛
    kernel does the same thing with and without multirom injection though (after i select the rom to boot, aka ubuntu)

    But, i just remember now, i can save a Kernel Log in Multirom... but i doubt it will give me anything important at that stage yet 😕

  • @UniSuperBox are the 16.04 and/or the 17.04 builds of ubuntu touch "stable" (or atleast do they boot on already working devices)?
    And do you know where the LXC container will be started? Maybe an architecture problem, like an incompatibility between the 64 bit kernel/android image, and the 32 bit vivid image (which i used so far).
    Friend of mine meant it could work with modifying the parameters how the LXC container gets created, if its a architecture problem (and im currently downloading both xenial and zesty builds)

  • @SGCMarkus Those builds are not stable. I'd recommend using the 15.04 rootfs.

  • @UniSuperBox

    found https://hastebin.com/wegibubuqu.go this today in the lxc config of the 15.04 rootfs, if i understand that correctly, it tries to load the LXC container, which is ARM64 for the Oneplus 2, as a armhf, which ofcourse doesnt work... maybe thats the problem? (or one of those)

  • @SGCMarkus It's possible that it's the problem, but I'm not really sure how you'd fix it. ADB not starting would indicate a much different problem, in any case.

Log in to reply