• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login
UBports Robot Logo UBports Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login

Port to Oneplus 2

Scheduled Pinned Locked Moved Porting
oneplus 2
41 Posts 6 Posters 16.5k Views 5 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S Offline
      SGCMarkus
      last edited by 21 Apr 2017, 22:25

      Sorry about the tag.

      The injection into the boot.img seems to work atleast (the only thing that does appearantly).
      I have a system.img now, a vivid-preinstalled-touch-armhf.tar.gz, the rootstock-touch-install script appearantly works without any error (everything done), but phone instantly reboots after the boot logo (the image before the boot animation) .. πŸ˜• (or as soon as the multirom injection tries to boot)

      Also noticed that /system is completly empty (if mounted), should that be the case?
      sorry for all the questions but i can't find anything about that πŸ˜•

      U 1 Reply Last reply 21 Apr 2017, 22:26 Reply Quote 0
      • U Offline
        UniSuperBox @SGCMarkus
        last edited by 21 Apr 2017, 22:26

        @SGCMarkus

        /system can be empty. Can you check to see if the /data/system-image/ directory is created on your phone?

        1 Reply Last reply Reply Quote 0
        • S Offline
          SGCMarkus
          last edited by 21 Apr 2017, 22:35

          nope, no directory "system-image" in /data, in /data i have "media", "misc", "system" folders, and a system.img and ubuntu.img (which seems to be a link to the system.img what i saw in the script) file.

          The content of those seems to be valid though.
          output of ls /system: (mounted the system.img there)

          android     data        firmware    media       proc        srv         userdata
          
          bin         dev         home        mnt         root        sys         usr
          
          boot        etc         lib         opt         run         system      var
          
          cache       factory     lost+found  persist     sbin        tmp         vendor
          

          I used this rootstock script (from your wiki), maybe somethings missing in there?

          U 1 Reply Last reply 21 Apr 2017, 22:38 Reply Quote 0
          • U Offline
            UniSuperBox @SGCMarkus
            last edited by 21 Apr 2017, 22:38

            @SGCMarkus

            That means that the rootfs is never starting. It's possible that the kernel is panicking. Take a look at the cmdline you're passing to the kernel, ensure that there's no "console=" directive or anything similar. The cmdline is specified in device/oneplus/oneplus2/BoardConfig.mk

            1 Reply Last reply Reply Quote 0
            • S Offline
              SGCMarkus
              last edited by 21 Apr 2017, 23:00

              The complete command line (maybe something missing which i overread?)
              BOARD_KERNEL_CMDLINE := androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 boot_cpus=0-5

              Also noticed that the recovery.img that was created doesnt boot either πŸ˜• so i guess a bit more is going wrong (i tried to boot it with fastboot boot recovery.img and it loaded a bit, rebooted and booted my normal installed recovery)

              U 1 Reply Last reply 21 Apr 2017, 23:31 Reply Quote 0
              • U Offline
                UniSuperBox @SGCMarkus
                last edited by 21 Apr 2017, 23:31

                @SGCMarkus Interesting.
                Finding why the recovery won't boot would be the number 1 priority... Try to remove as much of the cmdline as possible. Just leave, say, "androidboot.hardware=qcom boot_cpus=0-5".

                1 Reply Last reply Reply Quote 0
                • S Offline
                  SGCMarkus
                  last edited by SGCMarkus 22 Apr 2017, 00:04

                  @UniSuperBox
                  I suppose i used a wrong kernel then? I think i have currently the CM13 kernel source, which is CAF as far as i know.

                  Will try what you said, and some other kernels tomorrow, hopefully that will work

                  Edit: appearantly "TARGET_USES_UNCOMPRESSED_KERNEL" was set to true... and the new firmware needs a compressed kernel... so i guess thats the main reason it failed, building now again, this time compressed and with an AOSP kernel

                  1 Reply Last reply Reply Quote 0
                  • S Offline
                    SGCMarkus
                    last edited by SGCMarkus 22 Apr 2017, 13:36

                    So... I feel stupid now... forgot completly about the kernel patches that are described in the the official porting guide ...

                    With the script thats provided there, i set the variables needed, but now i get an error while its compiling the kernel πŸ˜•

                      CC      kernel/irq/resend.o
                    In file included from /home/markus/ubport_6/kernel/oneplus/msm8994/include/net/inet_hashtables.h:32:0,
                                     from /home/markus/ubport_6/kernel/oneplus/msm8994/include/net/tcp.h:37,
                                     from /home/markus/ubport_6/kernel/oneplus/msm8994/security/selinux/hooks.c:55:
                    /home/markus/ubport_6/kernel/oneplus/msm8994/include/net/route.h: In function 'ip_route_output_ports':
                    /home/markus/ubport_6/kernel/oneplus/msm8994/include/net/route.h:146:55: error: type mismatch in conditional expression
                           daddr, saddr, dport, sport, sk ? sock_i_uid(sk) : 0);
                                                                           ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/include/net/route.h: In function 'ip_route_connect_init':
                    /home/markus/ubport_6/kernel/oneplus/msm8994/include/net/route.h:256:2: error: incompatible type for argument 12 of 'flowi4_init_output'
                      flowi4_init_output(fl4, oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE,
                      ^
                    In file included from /home/markus/ubport_6/kernel/oneplus/msm8994/include/linux/netfilter.h:275:0,
                                     from /home/markus/ubport_6/kernel/oneplus/msm8994/include/uapi/linux/netfilter_ipv4.h:8,
                                     from /home/markus/ubport_6/kernel/oneplus/msm8994/include/linux/netfilter_ipv4.h:7,
                                     from /home/markus/ubport_6/kernel/oneplus/msm8994/security/selinux/hooks.c:49:
                    /home/markus/ubport_6/kernel/oneplus/msm8994/include/net/flow.h:87:20: note: expected 'uid_t' but argument is of type 'kuid_t'
                     static inline void flowi4_init_output(struct flowi4 *fl4, int oif,
                                        ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/scripts/Makefile.build:308: recipe for target 'security/selinux/hooks.o' failed
                    make[4]: *** [security/selinux/hooks.o] Error 1
                    /home/markus/ubport_6/kernel/oneplus/msm8994/scripts/Makefile.build:455: recipe for target 'security/selinux' failed
                    make[3]: *** [security/selinux] Error 2
                    /home/markus/ubport_6/kernel/oneplus/msm8994/Makefile:843: recipe for target 'security' failed
                      CC      crypto/twofish_common.o
                    make[2]: *** [security] Error 2
                    make[2]: *** Waiting for unfinished jobs....
                    
                    /home/markus/ubport_6/kernel/oneplus/msm8994/kernel/cgroup.c: In function 'subsys_cgroup_allow_attach':
                    /home/markus/ubport_6/kernel/oneplus/msm8994/kernel/cgroup.c:2138:37: error: invalid operands to binary != (have 'kuid_t' and 'kuid_t')
                       if (current != task && cred->euid != tcred->uid &&
                                                         ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/kernel/cgroup.c:2139:18: error: invalid operands to binary != (have 'kuid_t' and 'kuid_t')
                           cred->euid != tcred->suid)
                                      ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/scripts/Makefile.build:308: recipe for target 'kernel/cgroup.o' failed
                    make[3]: *** [kernel/cgroup.o] Error 1
                    make[3]: *** Waiting for unfinished jobs....
                    
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c: In function 'exfat_allow_set_time':
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:1145:22: error: invalid operands to binary != (have 'kuid_t' and 'kuid_t')
                      if (current_fsuid() != inode->i_uid) {
                                          ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c: In function 'exfat_setattr':
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:1218:18: error: invalid operands to binary != (have 'kuid_t' and 'uid_t')
                        (attr->ia_uid != sbi->options.fs_uid)) ||
                                      ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:1220:18: error: invalid operands to binary != (have 'kgid_t' and 'gid_t')
                        (attr->ia_gid != sbi->options.fs_gid)) ||
                                      ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c: In function 'exfat_fill_inode':
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:1677:15: error: incompatible types when assigning to type 'kuid_t' from type 'uid_t'
                      inode->i_uid = sbi->options.fs_uid;
                                   ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:1678:15: error: incompatible types when assigning to type 'kgid_t' from type 'gid_t'
                      inode->i_gid = sbi->options.fs_gid;
                                   ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c: In function 'parse_options':
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:2047:15: error: incompatible types when assigning to type 'uid_t' from type 'kuid_t'
                      opts->fs_uid = current_uid();
                                   ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:2048:15: error: incompatible types when assigning to type 'gid_t' from type 'kgid_t'
                      opts->fs_gid = current_gid();
                                   ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c: In function 'exfat_read_root':
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:2182:15: error: incompatible types when assigning to type 'kuid_t' from type 'uid_t'
                      inode->i_uid = sbi->options.fs_uid;
                                   ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/fs/exfat/exfat_super.c:2183:15: error: incompatible types when assigning to type 'kgid_t' from type 'gid_t'
                      inode->i_gid = sbi->options.fs_gid;
                                   ^
                    /home/markus/ubport_6/kernel/oneplus/msm8994/scripts/Makefile.build:308: recipe for target 'fs/exfat/exfat_super.o' failed
                    make[4]: *** [fs/exfat/exfat_super.o] Error 1
                    /home/markus/ubport_6/kernel/oneplus/msm8994/scripts/Makefile.build:455: recipe for target 'fs/exfat' failed
                    make[3]: *** [fs/exfat] Error 2
                    make[3]: *** Waiting for unfinished jobs....
                    

                    and should CONFIG_DEFAULT_SECURITY be "apparmor" or "selinux" ? the script didnt set it to "apparmor" on first run

                    Or is even something else making problems now suddenly πŸ˜•

                    EDIT: a few more errors that appeared at the same time which i didnt see

                    U 1 Reply Last reply 22 Apr 2017, 15:50 Reply Quote 0
                    • U Offline
                      UniSuperBox @SGCMarkus
                      last edited by 22 Apr 2017, 15:50

                      @SGCMarkus

                      It should be apparmor. These config changes will probably cause more build errors, so don't be alarmed.

                      Since the device uses a 3.10 kernel, you're going to need the commits from other 3.10 kernels, like I used on my tree for the Nexus 5X: https://github.com/usb-bullhead-ubuntu-touch/kernel_msm/commits/android-msm-bullhead-3.10-marshmallow-dr1.6-ut

                      1 Reply Last reply Reply Quote 0
                      • S Offline
                        SGCMarkus
                        last edited by 22 Apr 2017, 18:16

                        @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

                        U 1 Reply Last reply 22 Apr 2017, 18:30 Reply Quote 0
                        • U Offline
                          UniSuperBox @SGCMarkus
                          last edited by 22 Apr 2017, 18:30

                          @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.

                          S 1 Reply Last reply 22 Apr 2017, 18:40 Reply Quote 0
                          • S Offline
                            SGCMarkus @UniSuperBox
                            last edited by 22 Apr 2017, 18:40

                            @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

                            U 1 Reply Last reply 22 Apr 2017, 20:19 Reply Quote 0
                            • U Offline
                              UniSuperBox @SGCMarkus
                              last edited by 22 Apr 2017, 20:19

                              @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.

                              1 Reply Last reply Reply Quote 0
                              • S Offline
                                SGCMarkus
                                last edited by 22 Apr 2017, 20:36

                                @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.

                                U 1 Reply Last reply 22 Apr 2017, 20:47 Reply Quote 0
                                • U Offline
                                  UniSuperBox @SGCMarkus
                                  last edited by 22 Apr 2017, 20:47

                                  @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.

                                  1 Reply Last reply Reply Quote 0
                                  • S Offline
                                    SGCMarkus
                                    last edited by 22 Apr 2017, 22:01

                                    @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

                                    1 Reply Last reply Reply Quote 0
                                    • S Offline
                                      SGCMarkus
                                      last edited by SGCMarkus 22 Apr 2017, 23:29

                                      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

                                      U 1 Reply Last reply 22 Apr 2017, 23:32 Reply Quote 0
                                      • U Offline
                                        UniSuperBox @SGCMarkus
                                        last edited by 22 Apr 2017, 23:32

                                        @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?

                                        1 Reply Last reply Reply Quote 0
                                        • S Offline
                                          SGCMarkus
                                          last edited by 22 Apr 2017, 23:48

                                          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

                                          F 1 Reply Last reply 23 Apr 2017, 07:40 Reply Quote 0
                                          • F Offline
                                            flohack @SGCMarkus
                                            last edited by 23 Apr 2017, 07:40

                                            @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

                                            My languages: πŸ‡¦πŸ‡Ή πŸ‡©πŸ‡ͺ πŸ‡¬πŸ‡§ πŸ‡ΊπŸ‡Έ

                                            1 Reply Last reply Reply Quote 0
                                            15 out of 41
                                            • First post
                                              15/41
                                              Last post