Porting Halium to Nexus 7 deb
-
update: got hwcomposer working with some help from bshah, updating first post
-
Hey Doniks, nice to see you still working on Ubuntu Touch (It's ShadowEO from XDA). The Nexus 7 does actually have NFC, but you are correct, it does not have a haptic motor for vibration.
Sad to see the Flo isn't supported, but you can bet I'll be trying your deb port on my flo the moment you have a working test release
-
@Tonoxis Well, hallo there! Pleasure to meet again
I was actually thinking the other day to ping you on xda whether you would be interested to help
As for "releasing", I hadn't actually intended to upload the kernel image itself anywhere ... you know it's not in any way in a consumer ready state. The screen is black you can talk to it with commandline stuff over a usb cable. It is exciting but only for a certain audience. People should be able to build it with the instructions above and then have all the sources and infrastructure such that they can also actually improve upon the current state. Or do you think it would make sense to upload the images?
As for supporting flo - Well, it might "just work", right?! Similar with how we did it back in the day the other way around where your TonoKrnl "just worked" on my deb.
PS: updated first post for NFC & vibration. thx!
-
Unfortunately, I haven't had time for much of anything lately, if that were different I'd be happy to help with the project. For release, I'd recommend images and source tree, so anyone who wishes to contribute/debug can download your image as it currently is without needing to completely rebuild from source.
And I hadn't thought of that, you're right, it's possible the Deb version may just work on the Flo. I think the only hardware difference is the cellular modem afaik.
-
Small update in the OP. Tried plasma mobile rootfs, but can't make it work. Ubports rootfs for Halium doesn't seem to exist.
-
Behold! Plasma Mobile on the N7!
Courtesy of Mr @bshah, aka Da Man, who fixed some black magic code, so all I had to do was
repo sync
and reinstall -
Great that you got it working, now we need to get UBports working here
-
Tried the rootfs from here: http://cdimage.ubports.com/rootfs/ but it doesn't do too much for me:
OP:
- screen stays on the Google logo
- no usb iSerial messages
- no usb network interface seems to come up
- last_kmsg shows that systemd does take over http://paste.ubuntu.com/25419054/ however,
- it complains that "systemd[1]: Failed to start LXC Android Config and Container Initialization."
- no adb interface comes up, even though in TWRP/chroot I see that
android-tools-adbd.service
isenabled
-
@doniks said in Porting Halium to Nexus 7 deb:
Alternatively, you can set the passwords, but I don't do this because it seems to actually break the graphical login:
I actually figured this out... it seemed strange, but I gave wrong instructions it seems,
pam-auth-update # select everything but extrausers
Here is the catch, last option of pam-auth-update is ... None of the above ... so it would disable standard login as well, instructions should've been select everything but extrausers and none of the above.
Anyway, I will be publishing newer images with this things fixed soon, so you won't also need to do "hacks" for ssh..
-
@doniks Well AFAIK there is currently no ubports image booting with Halium correctly. Plus even if the xenial image would boot, it is far from usable. Lots of permission problems, no apps start etc. Its Pre-Alpha
BR
-
@doniks you could try the rootfs @ http://cdimage.ubuntu.com/ubuntu-touch/xenial/daily-preinstalled/current/ (I think xenial-preinstalled-touch-armhf.tar.gz or the -arm64.tar.gz if the nexus 7 is 64-bit should be the correct rootfs) and if this works our devs from ubports might reproduce their work step-by-step? I would be very interested whether this works if you could try
-
@demokrit said in Porting Halium to Nexus 7 deb:
@doniks you could try the rootfs @ http://cdimage.ubuntu.com/ubuntu-touch/xenial/daily-preinstalled/current/ (I think xenial-preinstalled-touch-armhf.tar.gz or the -arm64.tar.gz if the nexus 7 is 64-bit should be the correct rootfs) and if this works our devs from ubports might reproduce their work step-by-step? I would be very interested whether this works if you could try
Unfortunately, the Nexus 7 is not ARM64, it's normal ARM. So the ARM64 rootfs wouldn't work here. Glad to see progress being made and would love to test it out at some point
-
@Tonoxis Ah, I did not make myself clear xD i meant there are rootfs'ses for both armhf and amr64 but good to know it's armhf, thx
-
@doniks I've finally had a chance to play around with the steps you've produced, and I found the issue with the Ubuntu rootfs-builder is that it needs to run under sudo for chroot to run. Your OP was very informative and it definitely helped me get over a couple of places I was stuck building while reading the Halium documentation.
I attempted to boot my kernel but the MSM watchdog keeps rebooting the device after a little bit, however I can see in /proc/last_kmsg that it seems to want a rootfs, so I'm waiting until everything is done building to fully test. Gonna see if I can't get GNOME Wayland to run on Halium/Hybris.
Edit: After waiting a little bit, my Ubuntu 16.04 boot appears to fail with a problem setting up LXC Networking, it then hangs. No USB connection, it doesn't seem to respond to Ubuntu's requests for device setup. So I'm going to try the rootfs you linked.
-
@demokrit said in Porting Halium to Nexus 7 deb:
@doniks you could try the rootfs @ http://cdimage.ubuntu.com/ubuntu-touch/xenial/daily-preinstalled/current/ (I think xenial-preinstalled-touch-armhf.tar.gz
Canonicals "touch" root filesystems look somewhat different. Everything is in a "/system/" subfolder. If that would be the only difference, then well, one could hack around that, but I'm not sure whether there are other things as well (upstart/systemd?). I didn't feel like investing the time, since I expected the ubports core team to release a halium rootfs any day now But hey listening to the last community Q&A, it should really be any day now ...
-
@Tonoxis
Nice!I have done a repo sync and try to get back to where I was before. I'm using the halium rootfs and it does bring up the 10.15.19.82 network and I can ssh in, but after a few seconds it seems to tear that usb network down. I think I had that before, but I can't remember how I got past that. Something with the android lxc containers in the rootfs
Any luck with the rootfs yet?
-
@doniks I managed to figure out a workaround, I had to pull the jessie version of libssl1.0.0 so I could force ADBd to run instead, for whatever reason, my debian rootfs never gets USB tethering up unless it's the debug bootmode option. I am actually working with a running debian root now, however I screwed up while building my system image and didn't have any vendor blobs for libhybris to work with I'm rebuilding my system image now and then I'm going to reinstall the halium rootfs with the new system image.
Before-posting Edit: Looks like I'm running into an issue where the build system isn't picking up my vendor tree even after popping MOB30X's binaries down in there as laid out in the LineageOS guides for setting this folder up, every system image I build continues to not contain the proprietary blobs... I can't tell if I'm doing something wrong, or if it's something else that I'm not doing first.
EDIT EDIT: WOO! Had to do some linking around libhybris-egl, but I was able to finally get test_hwcomposer to show the spiral! Working on getting wayland to start up (working on getting some VTs up so I can launch weston as a test)
EDIT: Weston starts as long as I specify fbdev-backend and use msm_fb_refresher to get it up and running, but it runs and it's snappy. I just can't get anything else wayland to work (gnome-shell --display-server, kwin_wayland, etc)
-
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 kernelgit 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
-
@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)