Porting Halium to Nexus 7 deb



  • Which debian rootfs are you using?
    I just wanted to inform you that my work on the debian buster rootfs is now nearly finished and it boots to ssh, the lxc container starts and libhybris also works.
    I have some pre-built one around here: https://archive.org/download/halium-debian-rootfs/halium-debian-rootfs_20171024.tar.gz and the source for the rootfs-builder has moved here: https://github.com/debian-pm/rootfs-builder.



  • @doniks said in Porting Halium to Nexus 7 deb:

    patches

    FWIW, it might be conceivable to fix this thing about pidns_operations in a better way. I was poking around in the upstream kernel

    git clone  --depth 1 --branch v4.13.11  https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
    grep --color=always  -nr -C 3 -Ee'CONFIG_PID_NS|pidns_operations' |less -R
    

    and I see some stuff that is not present in the kernel I use. But, well, that's for another day. Afterall, I don't even know whether it's an actual problem right now :-P



  • @JBBgameich I believe I was using the debian stable rootfs. Like I said, the issue was caused by an error I made while building the rootfs. I had forgotten to build the libhybris parts so it wasn't able to communicate with the Android parts once it was up and running, managed to fix that and get up and running.

    My project trees have been put to the side for now because of my I.T. work, it hasn't left me much time for anything still. But I did see that there is now a flo image up on the ubports system image server.

    (Ninja Edit: My custom 3.4.0-5 kernel tree builds again! Fixed the defconfig)



  • Trying to revive this again.

    I can get the halium rootfs running as well as before, including test_hwcomposer.

    But using the latest plasma rootfs, I get only a black screen. Also, I'm not hearing the audible PM greeting "Oh it's gorgeous".

    I have replaced the vendor blobs with the ones provided by TheMuppets:

      <project
          path="vendor"
          name="proprietary_vendor_asus"
          revision="cm-14.1"
          remote="them"
          />
    

    but that didn't help either.

    • syslog https://paste.ubuntu.com/26340223/ It continues forever and ever with the line kgsl kgsl-3d0: |kgsl_add_fence_event| invalid fence fd
    • logcat https://paste.ubuntu.com/26345905/ , repeats those four lines forever
    • lxc-checkconfig see here and there, definitely something to do there, including bugs in lxc-config :(, but I'm not convinced this is related to the problem at hand, since I got PM to work last August without having those lxc-checkconfig items solved

    Any advice appreciated!

    Update: it seems that the pm rootfs from 20171219 does work ok, but the one from 20171220 fails.

    Update2: Another image from CI also works http://mobile.neon.pangea.pub:8080/view/All/job/generic_rootfs/68/artifact/result/halium-rootfs-generic.tar.gz

    Update3: But with both, 1219 and 68/artefact the system doesn't react to touch AFTER unlocking. The lock screen itself looks ok

    0_1515740234641_Image1673683779.jpg

    Update4: With some playing around I found that the first "bad" image is 1210. Images before are ok. Then I was playing around with 1210 for a while, and it actually became unfrozen. I'm not 100% sure what I did but I think it went something like this:

    systemctl disable NetworkManager
    systemctl mask NetworkManager 
    reboot 
    ...
    # frozen 
    systemctl unmask NetworkManager 
    systemctl enable NetworkManager 
    loginctl kill-session c1 
    # screen goes dark 
    systemctl stop simplelogin 
    systemctl start simplelogin 
    # htop shows a busy system including plasma and kwin stuff 
    echo 200 > /sys/class/leds/lcd-backlight/brightness
    # shows the lock screen 
    # unlock 
    # kwallet wizard shows 
    # cancel 
    # normal system shows and 
    # is NOT frozen, I can start chromium!
    

    Oh, and I did also enable wifi (`echo 1>/dev/wcnss_wlan ;
    echo sta > /sys/module/wlan/parameters/fwpath ;
    nmcli dev wifi connect <SOMEOPENWIFI> ) but I can't remember where in the sequence above.



  • I'm trying to get ubports-boot to work follwing
    https://docs.ubports.com/en/latest/porting/introduction.html and
    https://github.com/ubports/docs.ubports.com/pull/67

    but I'm stuck at usb iSerial saying "I hit a nail" and then it goes into telnet.

    I think I tracked it down to
    mount -o bind ${rootmnt}/run/image.fstab $FSTAB || panic "drop to adb" panicking, which in turn seems to be due to this line mount -o rw,nosuid,noexec,relatime,mode=755 -t tmpfs tmpfs ${rootmnt}/run
    https://github.com/ubports/ubports-boot/blob/master/initramfs/scripts/touch#L377 failing with status 255.

    This is my dmesg https://paste.ubuntu.com/26384482/
    with some extra logging I have added prefixed with UT.init
    anybody has a clue?

    Update: Somehow I had the image files mixed up. Be sure to clean /data up if you go from halium/pm rootfs' to ubports.

    Next hickup was a problem with sshd, workaround is here: https://gist.github.com/doniks/2ac14a1bb6750165bf782f62139c8aab#file-gistfile1-txt-L61

    Now I have ssh access but lxc isn't working, seems something went wrong again with rootstock and installing the android image.

    To be continued ....



  • May I introduce:

    the Halium Porting Error Knowledge Base

    https://gist.github.com/doniks/2ac14a1bb6750165bf782f62139c8aab#file-gistfile1-txt-L61



  • @doniks said in Porting Halium to Nexus 7 deb:

    I'm trying to get ubports-boot to work follwing
    https://docs.ubports.com/en/latest/porting/introduction.html and
    https://github.com/ubports/docs.ubports.com/pull/67

    I've reached ssh now, I can test_lights, but no UI, test_hwcomposer segfaults and when I run unity-system-compositor, I get the following in logcat : https://paste.ubuntu.com/26431933/



  • Gave it another spin.

    The general steps to get deb working are much simplified since it's all in github now: https://github.com/Halium/halium-devices/blob/halium-7.1/manifests/asus_deb.xml - just follow the halium documentation. However, I'm wondering whether I should leave the OP as is, some people have expressed that it helped them in their ports to see the journey ...

    Plasma mobile hasn't been sleeping. I can tell that the newer images work much better than previously.

    For ubports, I made another attempt, but no GUI so far. Any tipps appreciated!

    What I did in detail:

    • Follow the steps on https://docs.ubports.com/en/latest/porting/introduction.html
    • in rootstock-touch-install
      • insert the line do_shell "rm -f /data/system.img" as the first line in prepare_ubuntu_system, otherwise we have that thing left over from halium
      • insert the line IMAGE_SIZE=$(( $IMAGE_SIZE * 2 ))right after that variable is set, otherwise the image is too small, so I just double it
      • delete the line do_shell "ln /data/ubuntu.img /data/system.img", otherwise I end up with an empty system.img on the device ... Not sure what the problem was exactly, I think something goes wrong with the loop devices stepping on each others toes .. not sure
    • now I can install using the latest ubports xenial root fs: build 298 form https://ci.ubports.com/job/xenial-rootfs-armhf/
    • at first that wouldn't boot, so ...
    • I make ubports boot a bit more verbose halium/ubports-boot
      • append quite=n debug=y to the UBPORTS_BOOTIMG_COMMANDLINE in Android.mk
      • insert [ -f /dev/kmsg ] || mknod -m 600 /dev/kmsg c 1 11 in initramfs/init right before the mkdir -p /var/lock line
      • change the line in initramfs/scripts/functions : _log_msg() from printf "$@" to printf "$@" | tee /dev/kmsg
      • now I could sprinkle around log_warning_msg blabla in initramfs/init and see everything nicely in last_kmsg.
      • eventually I found that it panics at the line: mount -n -o move /proc ${rootmnt}/proc ... I have simply commented this line for the moment, that avoids the panic and
    • now it boots into the ubports rootfs
    • however, no GUI comes up
    • in /var/log/lightdm/lightdm.log I see
    Launching process 2998: /usr/share/ubuntu-touch-session/usc-wrapper --file '/run/mir_socket' --from-dm-fd 11 --to-dm-fd 14 --vt 1
    [...]
    DisplayServer: Unity system compositor stopped
    
    • usc-wrapper is a script. when I run the command inside: unity-system-compositor --disable-overlays=false --spinner=$SNAP/usr/bin/unity-system-compositor-spinner --file '/run/mir_socket' --from-dm-fd 11 --to-dm-fd 14 --vt 1
    • I get a Segmentation fault (core dumped)
    • when I run at the same time /system/bin/logcat | grep -Eve "NetlinkListener|rmt_storage" I don't see anything logged at the time of the segfault

    logcat: http://paste.ubuntu.com/p/kz7JSTfgTR/
    syslog: http://paste.ubuntu.com/p/JVQJ2mg98G/
    dmesg: http://paste.ubuntu.com/p/MPvwKtYhsS/

    Not sure what to do next. Maybe try halium-boot, maybe check the

    lxc-checkconfig: http://paste.ubuntu.com/p/5Z6w8Kwcm6/

    it still flags some things. Also, mabye related, I get

    # lxc-attach -n android
    lxc-attach: cgroups/cgfs.c: lxc_cgroupfs_attach: 2538 could not move attached process 10995 to cgroup of container
    lxc-attach: attach.c: lxc_attach: 992 Expected to receive sequence number 0: No such file or directory.
    

    However,

    # lxc-info -n android
    Name:           android
    State:          RUNNING
    PID:            1116
    IP:             10.15.19.82
    IP:             192.168.179.127
    

    and it's all seemingly good enough for plasma mobile, so not sure.

    Again, tips welcome!



  • @doniks just in case you don't know it, there's a UBports Porting group in Telegram (https://t.me/ubports_porting)



  • Thanks! I do know :) And I did get invaluable help from there! I would be no where without it.

    However, after piling up a couple of hacks I find it helpful to take a step back and summarize the status quo again which is hard in irc/telegram.

    And also, I like to mix the different styles of working: Specific tips for a specific problem in the more ad-hoc irc and the long haul, asynchronous conversation of a forum/mailing list.

    Oh wait ... ubports porting. No I didn't know that one! I was talking about the #halium channel. I'll have a look. Thanks.


  • Infrastructure

    @doniks maybe @UniSuperBox can comment a bit on the manual tweaks you had to do for rootstocking the device, actually all should come out of the box somehow. Then, if plasma mobile shows a screen, we should be able to do this, too right?

    BR



  • @flohack said in Porting Halium to Nexus 7 deb:

    @doniks maybe @UniSuperBox can comment a bit on the manual tweaks you had to do for rootstocking the device, actually all should come out of the box somehow.

    Well, in a way he did :) The PR for the update of docs.ubports is in, which means both ubports-boot and rootstock-install can take their bugs with them to the grave.

    Then, if plasma mobile shows a screen, we should be able to do this, too right?

    One would hope so. However, even with halium-boot (and a bunch more kernel configs it wanted) I managed just now to build and boot it, but I end up with the same segfaults :(

    I spoke to @UniSuperBox and @bshah earlier today on telegram. There was a theory about something with libhybris and "N linker" but I didn't really get it and atm still just google logo.


Log in to reply
 

Looks like your connection to UBports Forum was lost, please wait while we try to reconnect.