[NON-ANDROID]Native Linux thread for A8/A8+ (Arch Linux ARM, postmarketOS, ect.) - Samsung Galaxy A8 (2018) ROMs, Kernels, Recoveries

This thread is for native Linux development on Galaxy A8/A8+. This means no Halium here. It's also aimed at people who know how to compile their stuff, ect., so don't complain to me about no fancy zip installer.
I have made some fixes in our DECON framebuffer driver, ect that makes TTY, and Xorg, and anything that uses the framebuffer work! (Based on @prashantp01's Quantum Quack kernel because that's what I had at the time and it's a good kernel).
I have tested this using Arch Linux ARM (ALARM), and it boots just fine!
A postmarketOS tree for the regular A8 is in the way of being merged, and I need someone to try the A8+ version.
Please provide a photo of the phone running PostmarketOS with weston on A8+!
Prebuilt zip for A8+ and A8 with postmarketOS weston (not really useful, but good for screenshot) here:
A8: https://drive.google.com/file/d/1cVamhYGmBrDVrzzcIVyCmhLHJIQ3u3Xq/view?usp=sharing
A8+: https://drive.google.com/file/d/1xe9rFu4TRzxmM9yV4lINOHOHsEQ2TD0O/view?usp=sharing
This may also be useful for other 7885 and 7885 based (7884 variants, 7904) devices as well!
What currently works on Arch (and probably on any other native linux distro):
Booting (Arch Linux sometimes hangs on "Triggering uevents" for a few minutes, sometimes boots instantly)
Screen (inc. brightness and turning on/off (due to a hacky workaround in kernel, the screen may show a corrupted screen for a split second when turning on)
Framebuffer console (TTY)
Xorg (unaccelerated)
Touchscreen
Hardware buttons
Battery indicator (detects some other stuff as batteries/charging ports too ATM)
USB OTG (Mouse, keyboard, ect)
(After adding some configs)USB SSH, and web access from PC using USB
Basically anything using Xorg (LightDM, Xfce, GNOME, KDE Plasma, Firefox, Chromium, GIMP, VLC, ect ect ect)
Anything that can use framebuffer (weston's framebuffer backend)
NOTE: This is a guide assumes you know how to do some stuff. For some help you can also reference this
Rough instructions for Arch Linux (Using prebuilt boot.img):
Partition your SD card (using PC or something) so that your second partition will contain your rootfs (the boot.imgs provided use the 2nd SD card partition as root! Change in defconfig if you are building your kernel.)
Install the generic version of ARMv8 Arch Linux ARM to the second partition of your SD card.
Install additional packages by chrooting from Android, or using USB networking
(For dual-boot) back up boot.img
Install the correct boot.img.
To boot back into Android, restore your boot.img
Prebuilt Arch Linux boot.imgs
Source code

VDavid003 said:
This thread is for native Linux development on Galaxy A8/A8+. This means no Halium here. It's also aimed at people who know how to compile their stuff, ect., so don't complain to me about no fancy zip installer.
I have made some fixes in our DECON framebuffer driver, ect that makes TTY, and Xorg, and anything that uses the framebuffer work! (Based on @prashantp01's Quantum Quack kernel because that's what I had at the time and it's a good kernel).
I have tested this using Arch Linux ARM (ALARM), and it boots just fine! A postmarketOS port will follow soon!
This may also be useful for other 7885 and 7885 based (7884 variants, 7904) devices as well!
What currently works on Arch (and probably on any other native linux distro):
Booting (Arch Linux sometimes hangs on "Triggering uevents" for a few minutes, sometimes boots instantly)
Screen (inc. brightness and turning on/off (due to a hacky workaround in kernel, the screen may show a corrupted screen for a split second when turning on)
Framebuffer console (TTY)
Xorg (unaccelerated)
Touchscreen
Hardware buttons
Battery indicator (detects some other stuff as batteries/charging ports too ATM)
USB OTG (Mouse, keyboard, ect)
(After adding some configs)USB SSH, and web access from PC using USB
Basically anything using Xorg (LightDM, Xfce, GNOME, KDE Plasma, Firefox, Chromium, GIMP, VLC, ect ect ect)
Anything that can use framebuffer (weston's framebuffer backend)
NOTE: This is a guide assumes you know how to do some stuff. For some help you can also reference this
Rough instructions for Arch Linux (Using prebuilt boot.img):
Partition your SD card (using PC or something) so that your second partition will contain your rootfs (the boot.imgs provided use the 2nd SD card partition as root! Change in defconfig if you are building your kernel.)
Install the generic version of ARMv8 Arch Linux ARM to the second partition of your SD card.
Install additional packages by chrooting from Android, or using USB networking
(For dual-boot) back up boot.img
Install the correct boot.img.
To boot back into Android, restore your boot.img
Prebuilt Arch Linux boot.imgs
Source code
Click to expand...
Click to collapse
Thanks david

VDavid003 said:
This thread is for native Linux development on Galaxy A8/A8+. This means no Halium here. It's also aimed at people who know how to compile their stuff, ect., so don't complain to me about no fancy zip installer.
I have made some fixes in our DECON framebuffer driver, ect that makes TTY, and Xorg, and anything that uses the framebuffer work! (Based on @prashantp01's Quantum Quack kernel because that's what I had at the time and it's a good kernel).
I have tested this using Arch Linux ARM (ALARM), and it boots just fine! A postmarketOS port will follow soon!
This may also be useful for other 7885 and 7885 based (7884 variants, 7904) devices as well!
What currently works on Arch (and probably on any other native linux distro):
Booting (Arch Linux sometimes hangs on "Triggering uevents" for a few minutes, sometimes boots instantly)
Screen (inc. brightness and turning on/off (due to a hacky workaround in kernel, the screen may show a corrupted screen for a split second when turning on)
Framebuffer console (TTY)
Xorg (unaccelerated)
Touchscreen
Hardware buttons
Battery indicator (detects some other stuff as batteries/charging ports too ATM)
USB OTG (Mouse, keyboard, ect)
(After adding some configs)USB SSH, and web access from PC using USB
Basically anything using Xorg (LightDM, Xfce, GNOME, KDE Plasma, Firefox, Chromium, GIMP, VLC, ect ect ect)
Anything that can use framebuffer (weston's framebuffer backend)
NOTE: This is a guide assumes you know how to do some stuff. For some help you can also reference this
Rough instructions for Arch Linux (Using prebuilt boot.img):
Partition your SD card (using PC or something) so that your second partition will contain your rootfs (the boot.imgs provided use the 2nd SD card partition as root! Change in defconfig if you are building your kernel.)
Install the generic version of ARMv8 Arch Linux ARM to the second partition of your SD card.
Install additional packages by chrooting from Android, or using USB networking
(For dual-boot) back up boot.img
Install the correct boot.img.
To boot back into Android, restore your boot.img
Prebuilt Arch Linux boot.imgs
Source code
Click to expand...
Click to collapse
So one can boot Armbian on A8+ as we do with Android box? Where is dtb for this?

p5uresh said:
So one can boot Armbian on A8+ as we do with Android box? Where is dtb for this?
Click to expand...
Click to collapse
Yes you could probably boot it. The dtb is inside the boot.img
Try installing it to an sd card, chrooting into it from android, generating an initramfs, then replacing the initramfs in the boot.img with the one you generated. (Maybe it could even work without that, wiht arch's initramfs?)

VDavid003 said:
Yes you could probably boot it. The dtb is inside the boot.img
Try installing it to an sd card, chrooting into it from android, generating an initramfs, then replacing the initramfs in the boot.img with the one you generated. (Maybe it could even work without that, wiht arch's initramfs?)
Click to expand...
Click to collapse
OK
Thanks.

postmarketOS tree on the way! Please someone send photo of A8+ running it! Info in first post!

this is absolutely amazing, thank you for the work
im very happy with gentoo linux on my phone haha

saraphiem said:
this is absolutely amazing, thank you for the work
im very happy with gentoo linux on my phone haha
Click to expand...
Click to collapse
You got gentoo to boot? How did the drivers and compatability work out? I am asking this quite seriously as I do want to port it to my own device in the future.

Please update download links

Fandroid Tech said:
You got gentoo to boot? How did the drivers and compatability work out? I am asking this quite seriously as I do want to port it to my own device in the future.
Click to expand...
Click to collapse
well, it boots, tty works as expected with a phsyical keyboard lmao
the power button interestingly triggers a reboot, openrc & sysvinit goes through the "proper" shutdown process
i wasn't able to get much more than that working, unfortunately :c

saraphiem said:
well, it boots, tty works as expected with a phsyical keyboard lmao
the power button interestingly triggers a reboot, openrc & sysvinit goes through the "proper" shutdown process
i wasn't able to get much more than that working, unfortunately :c
Click to expand...
Click to collapse
I tried running it in a chroot, running gentoo on an 10 year old armhf cpu was hell in itself. The bigger problem was trying to update an old system. The closest anybody has gotten to gentoo mobile is sharkbait os, but that was just a chroot I think.

Fandroid Tech said:
I tried running it in a chroot, running gentoo on an 10 year old armhf cpu was hell in itself. The bigger problem was trying to update an old system. The closest anybody has gotten to gentoo mobile is sharkbait os, but that was just a chroot I think.
Click to expand...
Click to collapse
haha sure does take a while to compile things

Related

[Q] Haipad M701 and fingerprint reader

Hi ,
I have a Haipad M701 with me,
It is having this config:
4G Memory
Telechips 89xx board
Android 2.1-update1
MID-1.1
Kernel 2.6.29
I am trying to make a external USB fingerprint reader work with it.
The fingerprint device driver source was obtained from the vendor.
To enable the device i need to cross compile the fingerprint drivers.
But before i cud do that, i upgraded the firmware to Android 2.3(gingerbread) which is available in haipad.net(*w/o taking a backup*)(that is kernel 2.6.35).
Now, i am not able to cross-compile driver cos i took the kernel source (for 2.6.29) which telechips publicly opened to public.
So, Right now, i need the old Eclair(2.1,2.6.29) firmware, can anyone provide me that?
If not, is there any other way to achieve the cross-compilation?
In the meantime, i downloaded kernel source from android.com and branched to 2.6.35 which is the kernel version on device.
I compile the kernel and then cross compiled the fingerprint driver.
It compiled w/o any issues.
But when do a 'insmod', i get error:
Code:
mod_usbdpfp: version magic '2.6.35.7+ mod_unload modversions ARMv5 ' should be '2.6.35.7-tcc mod_unload ARMv6 '
What could be the issue here?
You have two problems:
First on the tablet, copy the file /proc/config.gz out on your build pc.
Extract and copy file to .config in the 2.3.35.7 source.
Now you are ready to configure the kernel sources that you compile the vendor driver against.
do make menuconfig;
Fix problems:
1: wrong name of kernel.
Insert "-tcc" in general setup --> Local version.
You seem to have a "+" now. I do not know how you got that. If it is not in the kernel config, look in the Makefile in the root folder. The version is in the top. Make sure the 4th version line just says ".7" - no more.
2. Wrong system type.
You are compiling the modules for an Armv5 instead of Armv6. Go to Arm system type and choose Samsun S3C64XX. That is an Armv6.
The selector might look really strange. If that is the case, scroll to the bottom and scroll back up (now names appear one at a time), until you see the ()amsung S3C64XX.
Configure Makefile for crosscompile.
Now do a make dep; make modules.
Now you can compile the vendor driver against this source and get the correct module. Use modinfo modulename.ko; to see that the name and type corresponds to "'2.6.35.7-tcc mod_unload ARMv6".
I have just done this (for an usb net driver), and the resulting driver crashes the tablet So even if you can get a module build and loaded, it might not work because the system architecture (S3C64XX) is not really correct. In that case we really need the telechips 2.6.35.7 sources to build correct module.
But try it out, and good luck!
Thanks for the suggestion, xdamala.
I will try it out today itself and let you know
@xdamala,
I had to do 'make s3c6400_defconfig'
But, Now i get this error.
Code:
mod_usbdpfp: version magic '2.6.35.7-tcc-g67bb0cf-dirty mod_unload
ARMv6 ' should be '2.6.35.7-tcc mod_unload ARMv6 '
I dont know how the 'g67bb0cf-dirty' gets added.
Each time i edit 'include/config/kernel.release' which contained that text, it automatically is updated on running 'make'.
Any idea??
I am not 100% on how the version string is constructed. But I think it is created from the top 4 lines in Makefile and the string you set in configuration.
I should not be necessary to do that s3c6400_defconfig. It is probaly what changes the string. I might have told you the wrong order of things in my other answer. It is important to set up Makefile first.
Do the steps (in order):
Start with clean 2.6.35.7 kernel code
edit Makefile in kernel root folder
Check version number in top
edit cross compile section to:
ARCH ?= arm
CROSS_COMPILE ?= ../../arm-eabi-4.4.3/bin/arm-eabi-
#or whatever fits your compiler. Note that this android tree gcc 4.4.3 is the one running M701 kernel is compiled with, so I prefer to use the same.
extract tablets /proc/config.gz to .config in root of kernel source (to remove unnecessary modules)
make menuconfig;
set -tcc in local version
choose S3C64XX system type
Exit (Save)
make dep ; make clean ; make modules; #Note you do not actually build the kernel, only modules.
In the Makefile from your driver there probably is a section something like this:
KDIR = /lib/modules/$(CURRENT)/build
edit to point to the folder of your kernel source.
make;
transfer fingerprintdriver.ko to tablet
Cross fingers, throw salt over your shoulder, pray, etc. etc.
insmod fingerprintdriver.ko;
@Xdamala
Code:
mod_usbdpfp: version magic '2.6.35.7-tcc+ mod_unload ARMv6 ' should be '2.6.35.7-tcc mod_unload ARMv6 '
Still the plus seems to be issue.
I checked in the main Makefile there is no '+'.
But in include/generated/utsrelease.h, there is
Code:
#define UTS_RELEASE "2.6.35.7-tcc+"
Well I use a kernel from kernel.org, not from the android tree.
Might be the reason for the "+".
I do not think that it makes any difference in this case.
Try with the kernel.org one. If it works it works, if not we might try to look at that "+"
By the way if all fails you can reinstall 2.1 on the tablet and build against the 2.6.29 kernel released by telechips. It should work.
The downside: 2.1 sucks, and usb in general sucks a lot on M701 2.1.
See my posts here:
http://www.androidtablets.net/forum/groups/11-haipad-m701-m701-r-d129-just-ordered-g10-haipad-m701.html.
In that case go to telechips kernel source:
make tcc8900_defconfig
make menuconfig. Exit + save.
make modules.
Then compile your driver against these sources.
Your driver should then work (this time we use the correct system type), but usb is quite bad on 2.1. So if I was you I would try a lot to make 2.3 work first.
Links:
Telechips kernel. Use Internet explorer to download (FF not working):
https://www.telechips.com/technical_support/kor/opensource/opensource_list.asp
Latest 2.1 firmware from Haipad:
http://u.115.com/file/c4rgup4f
xdamala said:
Latest 2.1 firmware from Haipad:
http://u.115.com/file/c4rgup4f
Click to expand...
Click to collapse
Thanks xdamala, thats what i needed, will check it out and let you know of the result tomm.
I will warn you that 2.1 comes with its own problems when it comes to usb.
Attach the device directly. Do not use a hub.
xdamala,
Method 1: Compile kernel source of 2.6.35.7 from kernel.org - Success
insmod driver.ko installed w/o any errors.
But, it seems i would need a power source for the fingerprint reader.
i dont think currently the Haipad support that mode.
Method 2: Flash(downgrade) m701 to 2.1 and try with the public kernel source which telechips have released - Failure
The FWDN program gives CRC check error while loading tcc8900_mtd.img.
Maybe bcos of corrupt download or the Haipad i have is a 4G memory one.
Which u think wud be?
Even if i accomplish providing power to the fingerprint device, i would need the C++ sample provided by the fingerprint vendor to be cross-compiled.
Otherwise, how can i test if the device works?
How to do that??
Hi
I did not see your post because it now came as page 2.
The tablet should provide some level of power to the reader. If you use the white converter cable that came with the tablet, it should tell the tablet to provide power (USB On The Go, see Wikipedia). It works with memory sticks and even hard drives. But I do not know if it is enough for that reader.
With 2.3 firmware you could use a power hub to give power to reader (still use white converter cable between tablet and hub). Do not use hubs on 2.1.
To check if tablet recognizes reader do this:
adb shell:
#dmesg -c
#insmod driver.ko
#dmesg
--Insert reader in usb
#dmesg
The output of dmesg should tell you how the kernel reacts when driver is loaded and reader inserted.
You can cross compile c++ code using same compiler as for the kernel. But you will have to compile program/libs statically, since android does not have the C++ libraries.
You can probably achieve this by putting a static keyword in a Makefile.
Also you need to direct the gcc to point at the cross compiler.
An other approach is to install Debian on the tablet inside an file image. I have done this. It is very nice. It gives you a complete (non graphical) Linux system. Compiler, libs and all. Also lsusb and other useful tools.
It is much easier to make Linux programs work like that.
But this Debian will run inside chroot, and cannot see the android system.
I used this tutorial:
http://www.saurik.com/id/10
However I used a bit different approach for starting up Debian system (using Debian own rc scripts).
If you can make the Debian Image, I will be happy to provide you with my scripts to manage it.
I do not know why you cannot install 2.1. It was the one you got fro my URL?
I just see now that Haipad has released a brand new 2.3 this night.
Do not attempt to load it. Last one did not work unless you had the very new tablet. I will try this new one tonight.
What is this project with the fingerprint reader? Tell me more.
Thanks xdamala,
Ya if it is possible, i would surely like to have a Debian on the pad.
I am just exploring things on it, so that we can have a external device work on the pads.
Let me check this url and will let you know
http://www.saurik.com/id/10
Click to expand...
Click to collapse
Ya, if you can help through the process, i will gladly accept it
Also, i didnt get any cable with my pad.
That was the first of issues. Had to buy it separately.
I had done the dmesg check as you told, but it didnt give any noticeable output.
The 2.1 firmware link that you gave, throwed a CRC error. what to do?
if you get a crc error on firmware it is probably because its the wrong firmware.
There are several different versions of this tablet so it can be a bit tricky.
This firmware is for a M701-R 4GB HY
There is 2 GB and 4GB versions. You have a 4 GB right.
There is HY and non HY versions (type of nand memory).
There a re with and without remote control. That is not so important.
I think any mix of the above is possible.
How to figure out if you have a HY version:
Insert usb to pc and enable usb storage.
If nan memory is shown as 3,08 GB (I think) it is an HY.
If it shows less (2,7 GB Ithink) it is a non-HY.
Determine your version and we can see if we can find a FirmWare for it.
Anyway I think you should keep your 2.3 for now. It just is better for USB.
What is the filename of the rar file with 2.3 rom you installed, and where did you get it from? (this might help me identify your tablet).
About usb cable. I now understand why you have no power on reader. If you read the wikipedia article about USB OTG (wikipedia) you will understand that the tablet is in slave mode and will not provide power and probably not talk to devices.
Also see here: http://www.maxim-ic.com/app-notes/index.mvp/id/1822
Can you get a memory stick to work?
You need something like this:
http://www.amazon.co.uk/Host-Cable-ARCHOS-Internet-Tablet/dp/B004TJC1IM/ref=sr_1_3?ie=UTF8.
It will short the correct pins in the mini usb plug, telling the tablet to be master and provide power.
It is possible to fix a cable yourself but I will not recommend it:
http://www.youtube.com/watch?v=COkLEJGo6vo&feature=youtu.be
I am a bit surprised that loading the driver produces no output in dmesg.
But if the tablet is not in host mode, it is not surprising that no output comes from inserting the reader. The tablet is not responding to it since it is in slave mode (like connection two usb sticks. Nothing happens).
I can not help you through the Debian. I used the tutorial I already linked.
If you do the same and add my scripts you should be able to make it work.
Alternatively you can get my Debian Image, but it is 1 GB file, and I need to clean out personal stuff and passwords.
Hi xdamala,
Ya, it seems to be a non-HY, cause i have around 1.4G space in nand
The file i downloaded was M701_2.3.rar, which i downloaded from haipad.net
I did buy the cable like u showed in amazon.com link, using that only am connecting the reader to pad.
And No, a memory stick also is not getting detected on that cable.
Attached that cable image.
Hi xdamala,
I have started creating the debian image, can you tell how you use the rc scripts?
Also, were you able to find the 2.1 image for M701 non-HY?
PS: I got the clockword mod recovery image from here http://androtab.info/telechips/firmwares
I used the one marked "Haipad M701 GB ROM 4K"
It worked for me.
Hi
Several things:
1: I think you have an 2GB version (non HY), not a 4G version.
2. It seems like the cable you bought is not correct. It has to be a HOST adapter/cable. Since nothing works with it I think what you have is just a male min-usb to female usb. It is not enough.
3. About Debian image. Which version of Debian are you using?
By the way I found out how to get rid of the "+" when using the Android kernel source. Move the folder .git to git. This will break git usage (unless you move it back). But it removes the "+" in version string.
Using Android kernel source might be better than stock kernel source.
Hi again,
1. Its a 2GB?? Oh but when i followed this link (translated it english)
Code:
http://www.inzipad.com/thread-334-1-1.html
My result was 4096, so i thought its a 4G one.
2. Oh. Then i will try to buy then one u have recommended.
3. I have dropped the step of building a Debian, cause i have a android application running and the input from the usb reader has to be sent to that application. So, I have to make it work natively on Android.
xdamala said:
You have two problems:
First on the tablet, copy the file /proc/config.gz out on your build pc.
Extract and copy file to .config in the 2.3.35.7 source.
Now you are ready to configure the kernel sources that you compile the vendor driver against.
do make menuconfig;
Fix problems:
1: wrong name of kernel.
Insert "-tcc" in general setup --> Local version.
You seem to have a "+" now. I do not know how you got that. If it is not in the kernel config, look in the Makefile in the root folder. The version is in the top. Make sure the 4th version line just says ".7" - no more.
2. Wrong system type.
You are compiling the modules for an Armv5 instead of Armv6. Go to Arm system type and choose Samsun S3C64XX. That is an Armv6.
The selector might look really strange. If that is the case, scroll to the bottom and scroll back up (now names appear one at a time), until you see the ()amsung S3C64XX.
Configure Makefile for crosscompile.
Now do a make dep; make modules.
Now you can compile the vendor driver against this source and get the correct module. Use modinfo modulename.ko; to see that the name and type corresponds to "'2.6.35.7-tcc mod_unload ARMv6".
I have just done this (for an usb net driver), and the resulting driver crashes the tablet So even if you can get a module build and loaded, it might not work because the system architecture (S3C64XX) is not really correct. In that case we really need the telechips 2.6.35.7 sources to build correct module.
But try it out, and good luck!
Click to expand...
Click to collapse
Thsi really works thanks for that

[Q&A] Ubuntu on the Transformer (eMMC install)

This thread is for help and support related to ubuntu on the eeepad transformer, all questions not related to development should be asked here, please be friendly and do not flame each other or I will request the thread be closed.
Download links are in the third post.
There is a wiki entry here that has a bit more detailed explanation. Please note though that as it is a wiki information
quoted in there may or may not be entirely accurite.
you will need to download an nvflashable rom, like prime.
Please read the README before attempting this. The readme is below as well as in the kit, YOU WILL LOSE DATA.
Download links are in the second post.
OLiFE for the ASUS transformer
------------------------------------------------------------------
(c) 2011 Steven Barker <[email protected]>
This package should have only been linked to from xda-developers
or rootzwiki if you got the links to this package from anywhere
but those sites please send an email to the above email
address with the subject: "unauthorised posts"
DISCLAIMER
------------------------------------------------------------------
Steven Barker (lilstevie) nor anybody will take any responsibility
for any damage, data loss, fire, death of a loved one, or loss of
data resulting from using this mod for your device. Using this mod
may void your warranty.
NVFLASH
------------------------------------------------------------------
nvflash is the intellectual property of nvidia, and remains the
property of nvidia. Any questions or queries regarding the usage
and licence of nvflash should be directed to nvidia.
abootimg
------------------------------------------------------------------
abootimg is by Gilles Grandou <[email protected]> and is
unmodified. The source is available from online at
http://gitorious.org/ac100/abootimg
usage
------------------------------------------------------------------
Usage has changed since the release of the last kit, please read
these instructions carefully, as the install method is a little
more complex, (but easier once you use it).
If you downloaded OLiFE.tar.gz you will need to inject the android
rom and ubuntu image. You can use any nvflashable rom with this.
I recommend that you use prime as that is the configuration that
I have tested myself, and the ROM that I support for use with this
device. You can download the ubuntu image from
http://lilstevie.geek.nz/ports/ubuntu.img.gz.
If you downloaded OLiFE-Prime-Edition.tar.gz you will not need to
download the ubuntu image or an nvflash rom as they are seeded into
the image.
Install instructions:
1) Download the specific flavour of OLiFE that you want to use, and
extract it with "tar xvf <filename>".
2) If needed inject android rom and ubuntu image.
3) From the directory that OLiFE was extracted in run the main script
with the command ./OLiFE.sh.
4) Read the text that comes up and answer the question it asks.
5) Follow the menu to the option you want (below is a breakdown of
what each menu item is) and follow the instructions prompted. (also below
is instructions on how to get into the modes requested).
Menu items:
1) Backup Menu:
1) Full Backup (stock)
- Full backup (stock) takes a full backup of a stock
android system. This gives you an option to also back
up your user data(this will take a while).
2) Full Backup (ubuntu)
- Full backup (ubuntu) takes a full backup of a system
that dualboots android and ubuntu, this backs up your
system, and the ubuntu image. This gives you an option
to also back up your user data(this will take a while).
3) User data only
- This backs up the user data partition on your device.
(This option takes a while)
4) Android ROM
- This option backs up the android system only. This
option generates all the files (minus bootloader, and BCT)
required to flash a rom via nvflash.
5) Ubuntu Install
- This option backs up the ubuntu install on your device.
2) Flash Device:
1) Dualboot:
- This option will install ubuntu to your device in a
dualbooting configuration with android. During the
installation process it asks you which OS you would like
to boot by default.
2) uboot (linux only):
- This option will install ubuntu with u-boot and the
ChromeOS kernel that supports acceleration. This option
is currently unavailable, but should be available soon.
3) asus boot (linux only):
- This option will install ubuntu with the asus bootloader
with this configuration you will use all the eMMC for ubuntu
and there will be no android system installed on your device.
4) stock:
- This option will partition the device in a stock way and
install the android system that is in ./images. Use this
option if you no longer want ubuntu on your device.
3) Update Device:
1) Android Kernel:
- This option will update the android kernel on your device
with the boot.img from ./images/. This allows you to install
your own kernel on the device for android rather than the one
that comes with your chosen rom.
2) Ubuntu/Linux Kernel:
- This will update the ubuntu kernel on your device to the version
included in this flashkit. This option is for updating just the
kernel with nvflash rather than using the blob method. This method
is also good for if you flash a bad ubuntu kernel to the device.
3) Android ROM:
- This option will update the android rom on the device with the
one from ./images/. This is good for if the ROM you use is updated
or you would like to change ROMs and there is an nvflash image for it.
This option does not destroy your data.
4) Ubuntu Rootfs:
- This will update your ubuntu image on the device. This is destructive
to data stored in the ubuntu image.
5) Advanced (Unsupported):
- Any option in this menu is not supported and should be considered
unstable. There may be bugs in these options and they are not maintained
at this point in time.
1) Flash ChromeOS Kernel (Primary Boot):
- This option will flash the ChromeOS kernel to the primary boot
partition. This option may not currently work in it's current
configuration.
2) Flash ChromeOS Kernel (Secondary Boot):
- This option will flash the ChromeOS kernel to the secondary boot
partition. This option may not currently work in it's current
configuration.
3) Update Uboot Partition:
- This option will update the u-boot boot partition that u-boot
reads the kernel and boot script from. This option does work if
you have installed u-boot by compiling it from source and installed
it yourself.
4) Flash ClockworkRecoveryMod:
- This option allows you to temperarily flash CWR to the device so
you can update the installed rom. It backs up the current kernel in
the recovery kernel position and then flashes CWR. When you have finished
using CWR you then push any key and put the device back in APX mode and
it will restore the kernel that was in that position. (This only works if
android is your primary boot option at this time).
4) Inject Firmware:
1) Bluetooth firmware (default install):
- This option will inject the Bluetooth firmware from the
android ROM located at ./images/ in to the ubuntu of your
currently running system.
2) Bluetooth firmware (CrOS Kernel):
- This option will inject the Bluetooth firmware from the
android ROM located at ./images/ in to the ubuntu of your
currently running system and flashes the proper u-boot kernel
if you no longer need adb support.
5) Onscreen Keyboard:
- This runs OnBoard so that you can run through oem-config properly
you only need to use this option if you do not have a keyboard dock
and on the first boot.
1) Standard Kernel:
- This will invoke oem-config on the standard kernel installed
on the device.
2) ChromeOS Kernel:
- This will invoke oem-config on the u-boot kernel that is
installed on the device and flashes the proper u-boot kernel
if you no longer need adb support.
Device Modes:
APX Mode:
-This mode is used by nvflash to write files to the eMMC device.
To boot in this mode you press Power and Vol-Up.
Recovery Mode:
- This mode is where CWR or Asus recovery normally lives, but is
replaced by the secondary OS in the dualboot configuration.
To boot in this mode you press Power and Vol-Down, then Vol-Up when prompted.
Normal Boot:
-This mode is where android normally lives.
To boot in this mode you press the Power button until the screen turns on.
Changelog
------------------------------------------------------------------
1.2a - Release name: Odyssey
* New name for kit: OLiFE
* New menu system
* Updated README
* Better handling of platform detection
* Bluetooth support in ubuntu.img
* Preliminary support for ChromeOS kernel
* Preliminary support for uboot
* Fixed touchpad
* Fixed network manager
* Updated to ubuntu oneiric
* More options for flashing and updating
* OTB Wireless support (No more injecting)
* Smaller ubuntu.img for faster upload to device
* Auto resizing of rootfs on first boot
* Larger partition size (6GB) for ubuntu
* Refactored to more easily between devices
* Maybe something else I have missed
1.1 - Release name: Daedalus
* Firmware injector for BT and wifi firmwares
1.0 and silent updates - Release name: Prometheus
* Support for x86_64 linux distributions
* Updated README for release on xda-developers
* Fixes to install scripts
* Initial Release
Downloads:
RootFS md5sum(1a9fa8a698e4a96245a3c08511841eb4)
OLiFE md5sum(c30263fd8271a23bb211fd9fdd69fa45)
OLiFE Prime Edition md5sum(767779ccfa200e5e00b2f1e33a3d73a9)
Sources:
http://gitweb.lilstevie.geek.nz
To clone the repos "git clone git://lilstevie.geek.nz/$(name of repo).git"
lilstevie said:
This is running natively and from the eMMC so no µSD card required,
The video is a class2 µSD card and speeds are not an example of speeds from this kit.
Click to expand...
Click to collapse
Thanks for your hard work, but I'm a bit confused by those 2 statements, contradicting each other :/
Also, if I understood properly, there is no CWM after selecting dual boot
Finally, is this a final release, or for testing purpose only ?
If final, a step by step guide would be very welcome
Edit : Just saw there is the tag [DEV] so forget about my last question (guide)
Wow, amazing work here. Haven't been able to do much to my Transformer as of late (due to uni starting up again, and been seeing how the TF goes as a substitute for my usual netbook), but absolutely can't wait to try this out when I got some time.
And yeah, I'm a tad confused here as well. I'm assuming that you mean the video was of Ubuntu running of your microSD drive using Jhinta's scripts but now this allows us to run it off the internal drive... am I right?
And how is the speed difference so far, running off internal vs class 2 microSD?
EDIT: Also, I'm assuming the same things that didn't work on Jhinta's aren't working on this (network-manager gui, touchpad etc)? Or have you changed things up a bit? And the tegra ppa you talk about; that contain the proprietary 3D drivers you were talking about having a lack of in the video?
Nice to see the post in XDA Good work !
bud77 said:
Thanks for your hard work, but I'm a bit confused by those 2 statements, contradicting each other :/
Also, if I understood properly, there is no CWM after selecting dual boot
Click to expand...
Click to collapse
The video was taken before I was stable enough to even think about using internal memory, where as this kit is not using the µSD
and yeah you lose recovery after selecting dual boot, not much we can do about that for the time being.
poltak11 said:
Wow, amazing work here. Haven't been able to do much to my Transformer as of late (due to uni starting up again, and been seeing how the TF goes as a substitute for my usual netbook), but absolutely can't wait to try this out when I got some time.
And yeah, I'm a tad confused here as well. I'm assuming that you mean the video was of Ubuntu running of your microSD drive using Jhinta's scripts but now this allows us to run it off the internal drive... am I right?
And how is the speed difference so far, running off internal vs class 2 microSD?
EDIT: Also, I'm assuming the same things that didn't work on Jhinta's aren't working on this (network-manager gui, touchpad etc)? Or have you changed things up a bit? And the tegra ppa you talk about; that contain the proprietary 3D drivers you were talking about having a lack of in the video?
Click to expand...
Click to collapse
I started back at uni this week myself, and have been using my transformer as a netbook replacement with ubuntu. The video is using my stuff but before I had it running on the internal memory.
speed diference is massive between the class2 and internal. It was so great of a difference that I forget that it is arm now that it is on internal
the PPA will have things such as kernel updates, bluetooth enabler and all that. as for what is working in the release, things are pretty similar to Jhintas release, touchpad does not work correctly network manager gui doesn't work, I have something to enable bluetooth, that works nicely, but it isn't in the fs or up on the ppa yet. 3D drivers are a work in progress, still no EGL and the likes with the L4T releases, so it is really just acceleration for normal use, I have been working on them but as of yet no dice.
So using the PPA, in theory we won't have to flash the device again (at least for the ubuntu part), it will be able to auto-update itself ?
ErGo_404 said:
So using the PPA, in theory we won't have to flash the device again (at least for the ubuntu part), it will be able to auto-update itself ?
Click to expand...
Click to collapse
yes, that is the plan anyway
lilstevie said:
the PPA will have things such as kernel updates, bluetooth enabler and all that. as for what is working in the release, things are pretty similar to Jhintas release, touchpad does not work correctly network manager gui doesn't work, I have something to enable bluetooth, that works nicely, but it isn't in the fs or up on the ppa yet. 3D drivers are a work in progress, still no EGL and the likes with the L4T releases, so it is really just acceleration for normal use, I have been working on them but as of yet no dice.
Click to expand...
Click to collapse
Ah lovely idea with the PPA. When new 3.2 based Prime gets released, I'll try to get a few hours to myself to get this all working together.
Just a few quick questions first:
How do your scripts change the eMMC layout? Does eMMC work the same as a standard HDD/SSD partitioned with a GPT? As in, have you made separate partitions for Android and Ubuntu, or is it somehow shared?
And also related, how much room will it take up on the eMMC (as I've only got a 16GB TF)?
And finally, since you've been using yours at uni running Ubuntu, have you got any idea of the battery life running Ubuntu? I'm assuming it'd be pretty similar to stock, but yeah the battery indicator wasn't working last time I was playing around with Ubuntu from the microSD. Also, does the second keyboard battery work?
poltak11 said:
Ah lovely idea with the PPA. When new 3.2 based Prime gets released, I'll try to get a few hours to myself to get this all working together.
Just a few quick questions first:
How do your scripts change the eMMC layout? Does eMMC work the same as a standard HDD/SSD partitioned with a GPT? As in, have you made separate partitions for Android and Ubuntu, or is it somehow shared?
And also related, how much room will it take up on the eMMC (as I've only got a 16GB TF)?
And finally, since you've been using yours at uni running Ubuntu, have you got any idea of the battery life running Ubuntu? I'm assuming it'd be pretty similar to stock, but yeah the battery indicator wasn't working last time I was playing around with Ubuntu from the microSD. Also, does the second keyboard battery work?
Click to expand...
Click to collapse
The second battery does work, unless you get one of those dodged ones that just randomly stops charging which happened to me, with the dock connected and the battery in it refusing to charge my battery lasted 6 hours.
the layout is different to standard, UDA(User DAta partition) is 4.2GB smaller than what it was, so you have 9.99gb for android and 4.2 for ubuntu, the kernel and recovery kernels are moved up to the end of the flash as well so that they are accessible through /dev
Just finished installing it. Yea, from internal memory it's working much faster. ~20 second boot time!(I didn't have timer with me, so I counted in the head) That's like my laptop with SSD + 10 second bios booting. With a dock it feels like a true netbook. I think I'll even dare to test c/c++ IDE on this thing. Good job!
Used online timer. It's 21 seconds.
Hmm how do I start wifi? eth0 is not even showing in the list of devices.
aligatro2010 said:
Just finished installing it. Yea, from internal memory it's working much faster. ~20 second boot time!(I didn't have timer with me, so I counted in the head) That's like my laptop with SSD + 10 second bios booting. With a dock it feels like a true netbook. I think I'll even dare to test c/c++ IDE on this thing.
Used online timer. It's 21 seconds.
Hmm how do I start wifi? eth0 is not even showing in the list of devices.
Click to expand...
Click to collapse
Sorry forgot to mention in the first post, firmwares are not included in this release due to potential licensing issues, you can push the wifi firmware via adb to /lib/firmware and also the nvram, they are located in /system/vendor/fw_bcm4329.bin and /system/etc/nvram.txt on your android system, the module will autoload on boot once you have the firmware in place, and the interface will be named wlan0
lilstevie said:
Sorry forgot to mention in the first post, firmwares are not included in this release due to potential licensing issues, you can push the wifi firmware via adb to /lib/firmware and also the nvram, they are located in /system/vendor/fw_bcm4329.bin and /system/etc/nvram.txt on your android system, the module will autoload on boot once you have the firmware in place, and the interface will be named wlan0
Click to expand...
Click to collapse
nvram.txt to /etc right? I copied them straight from android partition, but it still doesn't load. Could it be because of the bcm4329_sta.bin or nvram should be placed in /lib/firmware ?
It works now.
So basically we will be able to dual boot Windows 7 and Android?
liorry said:
So basically we will be able to dual boot Windows 7 and Android?
Click to expand...
Click to collapse
No, Windows 7 doesn't have arm version. Windows 8 maybe in future, long future ....
aligatro2010 said:
nvram.txt to /etc right? I copied them straight from android partition, but it still doesn't load. Could it be because of the bcm4329_sta.bin or nvram should be placed in /lib/firmware ?
It works now.
Click to expand...
Click to collapse
the wifi firmware should be called fw_bcm4329.bin and nvram.txt should be in /lib/firmware, I probably should have been a little clearer, but I posted that just before going to bed, and was a little tired
lilstevie said:
the wifi firmware should be called fw_bcm4329.bin and nvram.txt should be in /lib/firmware, I probably should have been a little clearer, but I posted that just before going to bed, and was a little tired
Click to expand...
Click to collapse
"bcm4329_sta.bin" was already there before I even copied 2 modules and it was also loaded as module when I did modprobe. (not 100% sure about the second)That's why I thought it was conflicting with android's modules.
Wow, great work! Can't wait to try it.
Sent from my Transformer TF101 using XDA Premium App
I've probably missed something obvious.. But I get this.
file not found: linux.img
failed executing command 2147483647 NvError 0x4
command failure: create failed
rm: cannot remove `linux.img': No such file or directory
Click to expand...
Click to collapse
After like 5 minutes of NvFlash installing stuff.

[DEV] Multiboot Linux on Infinity tf700 (project closed)

Developers thread for users general.
I will post here some external links and additional information.
GitHub tf700 Repository - place for config files and step-by-step manual to create you own kernel and rootfs
GOO.IM file place
Tablet PPA for Raring
Changed packages is placed in /root/deb directory.
Known problems: (nexus7 wiki, mattfischer blog post, nexus7 bugs)
Unity has some problems with performance and ram eating - this is place for optimizations.
In-device microSD really bad works.
WiFi disabling is fail bcmdhd kernel module.
vt1-only, if you try to switch to vt* (`chvt 2`) - your device is freezes and reboot.
To use unity you need nux-tools, libnux-3.8-0 and libnux-3.8-common with version 3.8.0-0ubuntu1nexus7.1 (this packages are hold)
Sometimes I can see really bad artifacts with fonts and background on the device screen (mostly if using chromium browser). Only reboot fixes it.
Progress list:
Test Linux boot {DONE}
SDCard rootfs {DONE}
Graphical boot{DONE}
Keyboard special keys remapping (Esc, F1-12, Ins, Print, Break, Del, Home->Alt, Search->Meta4) {DONE in 0.8.0}
WiFi {DONE}
OpenGL ES {DONE}
Audio {DONE} In pavucontrol as output device selected Analog Stereo Output, in alsamixer (tegra-codec) unmute IntSpk
Video up to 1080p {DONE} (ac100 info) - Soft audio requires gstreamer0.10-plugins-*
nvgstplayer --sas="audioconvert ! pulsesink" -i <videofile> - Fullscreen mode
nvgstplayer --svs="nvxvimagesink" --sas="audioconvert ! pulsesink" -i <videofile> - Window mode
Touchscreen {DONE in 0.7.0} - used mtev one-touch driver 0.1.13 with api and 2button patches - right click by push one finger and click by second finger (thanx, cb22)
Touchpad {DONE in 0.6.1}
2 fingers scrolling {DONE}
3rd mouse button by 2 finger tap {DONE 0.6.1} - created new version of package multitouch "-swaptaps"
Updated tegra3 drivers and codecs to 16.2 {DONE in 0.6.1}
Ubuntu/Android dualboot {DONE in 0.7.0}
Initrd bootloader trying to boot sda1(dock sd cardreader or usb device), mmcblk1p1(internal microsd cardreader), sdb1 (dock sd cardreader or usb device), mmcblk0p9(inernal device), /data/media/tf700-rootfs-linux.img(in-device installed virtual disk) (0.7.0)
If it can't load linux - fallback to Android (0.7.0)
Boot android if voldown (or special, like Up key) key pressed in menu (0.7.0)
Fixed nvavp problem in android (0.7.0)
Fixed problems with Android sleeping by unbinding vtconsole before Android boot (0.7.0)
Initrd installer to mmcblk0p8 user partition and mount as loop with binding mmcblk0p8 {DONE in 0.7.0}
Fonts and cursor size {DONE in 0.8.0}
ZIP installer by Aroma {partially}
Install of boot image {DONE in 0.7.1}
Install script for SDcard-way and Virtual Disk-way {DONE in 0.8.0}
Possibility of using mmcblk0p8 /data as /home {DONE in 0.8.0}
Dynamical making of boot.blob {DONE in 0.8.1}
Select rootfs to boot {DONE in 0.8.1}
CM10.1 initrd (link) {DONE in 0.8.1}
Android boot from sdcard or virtual drive {DONE in 0.8.1}
UbuntuTouch initrd {DONE in 0.8.2}
Change boot system names {DONE in 0.8.2}
Add option to boot android by default {DONE in 0.8.2}
Check md5 of rootfs archive
Encryption for linux partition
FSCK check & fix rootfs before mounting {DONE in 0.8.2}
GPIO keys {partially in 0.8.0}
Switch rootfs to 13.4 (link) {partially}
Bluetooth
Try this: /system/bin/brcm_patchram_plus --bd_addr `cat /etc/bluetooth/bt_addr` --enable_hci --enable_lpm --no2bytes --tosleep 50000 --baudrate 4000000 --use_baudrate_for_download --patchram /lib/firmware/bcm4334.hcd --i2s=1,0,0,0 /dev/ttySAC0&
Totem and nvgst modules
Go to Wayland+Weston+libhybris to use egl android drivers
Disable speaker if headphones connected
Additional:
Ubuntu Cube Desktop {DONE in 0.6.2}
Chromium browser with egl and ffmpeg support {partially} - Youtube has problems with performance
Games & software {partially}
Duke3D {DONE}
Minecraft {partially}:
+ MCP
+ LWJGL 2.8.x (`ant jars_es && ant compile_native_es`)
+ Hands
Games and Emu (in Russian)
Xonotic
C-Dogs SDL
pcsx-rearmed (pi) (Return Fire and other good ps1 games)
Open Clonk
OpenLieroX
Blender + LuxRender
Need help:
Suspend to RAM - Not working with X (trace), without X (stop lightdm) - suspended, but not wake.
Wakelock to emmc
Wake up: echo "on" > /sys/power/state or powerbutton (maybe with kernel patching)
Totem - now is not working
gstreamer-properties and set Audio->Output=Custom, Audio->Output->Pipeline="nv_omx_audiosink" and Video->Output=Custom, Video->Output->Pipeline="nvxvimagesink"
HDMI copy of screen (any ideas?)
Xorg configuration shows blue lines on HDMI screen
Not working properly with 1920x1080: `xrandr --output LVDS-1 --auto --output HDMI-1 --mode 1920x1080` - I get "xrandr: Configure crtc 1 failed"
Tested on different display with fullhd support - seems like tegra3 drivers problem
Works ok with 1280x800:
xrandr --newmode `gtf 1280 800 60 | tail -n2 | head -n1 | sed 's/ Modeline //'`
xrandr --addmode HDMI-1 1280x800_60.00
xrandr --output LVDS-1 --auto --output HDMI-1 --auto
HDMI audio (any ideas?)
Adobe Flash player (any ideas?)
Skype (any ideas?)
List of optimizations:
ZRam {DONE}
UKSM (Ultra Kernel Samepage Merging) {DONE} (info in Russian)
CPU optimizations {partially}
Clemsyn OC 1.3 - 1.8ghz 650GPU Kernel {DONE in 0.6.2} - seems like not properly working on AndroidRoot hacked bootloader
Boot optimizations {partially}
Initrd scripts {DONE in 0.6.2}
Kernel modules upgrade from initrd {DONE in 0.7.1}
IO optimizations {partially}
Some optimizations of filesystem mounting {partially in 0.6.2}
Install to device main emmc memory {DONE in 0.7.0}
Power optimizations:
Screen off on lid
RAM Sleep
Powersave, Auto and Performance modes
Plans for the future:
Prepare common installer for any tegra3 device.
Test builds:
Nope
If you can help in development - please, write here.
This is very nice! Its certainly a good start.
There are definitely changes between your implementation and Jay's build. It would seem that after reviewing your source code that the major difference is your overall system config and choice of location of rootfs.
The kernels aren't too too different.
you are using noop vs cfq which is understandable since you are using the stock kernel vs CM10
you incorporated less debugging vs debugging (agree with your preference)
you incorporated framebuffer vs no fb
you incorporated zram vs no zram (smart move to help chromium)
your enhancements are much better IMHO.
You are not utilizing the linux for Tegra drivers. I think we could benefit by utilizing the latest version at least for sound. After reviewing the documentation and reviewing the drivers themselves I think we should integrate. That is unless you are trying to have two separate kernels instead of a monolithic kernel that can boot android and linux kind of like "Ubuntu for Android"
Since I have a working nvflash'd tf700 I am working on a dualboot kexec.
I still prefer the monolithic kernel approach for Android and Linux concept though, and make selection during boot as to which environment to go to. Essentially, it is possible to boot the kernel and run a specific environment and end that environment and switch to another environment.
As others have suggested I think we should integrate both into 1 tree and also try to get the tf300 on board because other than their kernel, specific tf700 configs/rules the rest of the rootfs and other portions should be identical.
Sent from my ASUS Transformer Pad TF700T using xda app-developers app
quicknik said:
You are not utilizing the linux for Tegra drivers. I think we could benefit by utilizing the latest version at least for sound. After reviewing the documentation and reviewing the drivers themselves I think we should integrate. That is unless you are trying to have two separate kernels instead of a monolithic kernel that can boot android and linux kind of like "Ubuntu for Android"
Click to expand...
Click to collapse
You mean - HW sound? I have integrated drivers, because I use modified nexus7 rootfs. Maybe, I wrong...
Also, integration of kernels is too difficult task for me now...
quicknik said:
Since I have a working nvflash'd tf700 I am working on a dualboot kexec.
I still prefer the monolithic kernel approach for Android and Linux concept though, and make selection during boot as to which environment to go to. Essentially, it is possible to boot the kernel and run a specific environment and end that environment and switch to another environment.
Click to expand...
Click to collapse
I also have nvflash by wheele, but for users preparing device for this - is too difficult. Now I already prepared dualboot with same kernel through initrd menu. In 0.6.0 I will release it. I have some problems with integrated cameras, but wifi is now works in android.
I think we have some problems with non-JB androids with this dualboot... But it is simple.
quicknik said:
As others have suggested I think we should integrate both into 1 tree and also try to get the tf300 on board because other than their kernel, specific tf700 configs/rules the rest of the rootfs and other portions should be identical.
Click to expand...
Click to collapse
Applying to tf300 - is good idea. It's a part of integration all tegra3 devices in same Ubuntu installation for pads.
Sorry, guys. I found my mistake with no-dualboot initrd. Now i replaced it to true dualboot (0.6.1).
rabits said:
Developers thread for users general.
Test builds:
boot.img dualboot initrd Pre-release 0.6.1
for me dualboot nice works, but I need to change verbosity of kernel output and boot menu more user frendly. If you can try it and write your suggestions - that will be cool.
assembly of mini initrd and android JB 4.1.1 (I have CleanROM 2.4 installed on my tf700t).
wifi on android is supported (added p4p bcmdhd option), but nvavp can't load fw.
boot menu (included linux, android, initrd shell) is showing after kernel loading.
Click to expand...
Click to collapse
I am more than willing to try, but how can I dualboot that first build ? If you provide a few step by step instructions, I am sure a lot of people will try which will help the development by giving several feedbacks.
I am currently on Clean Rom Inheritance (= CROMI) 2.7.2 which is the latest update in the Clean Rom series. Since you are using 2.4, I guess the steps woul be exactly the same as for you. I am however using Clemsyn kernel. Is the stock kernel required to be able to dual boot ?
One the OP, Ubuntu seems tobe pretty stable since a lot of features ar working. Is that really the case ? Is compiz already something I could consider using at this point of the developpment or is it still a little bit early ?
I am really interested in this project and I thank you a million time for starting actively a development allowing us to dualboot Ubuntu. Keep up you awesome work !!!
singoutout said:
I am more than willing to try, but how can I dualboot that first build ? If you provide a few step by step instructions, I am sure a lot of people will try which will help the development by giving several feedbacks.
I am currently on Clean Rom Inheritance (= CROMI) 2.7.2 which is the latest update in the Clean Rom series. Since you are using 2.4, I guess the steps woul be exactly the same as for you. I am however using Clemsyn kernel. Is the stock kernel required to be able to dual boot ?
One the OP, Ubuntu seems tobe pretty stable since a lot of features ar working. Is that really the case ? Is compiz already something I could consider using at this point of the developpment or is it still a little bit early ?
I am really interested in this project and I thank you a million time for starting actively a development allowing us to dualboot Ubuntu. Keep up you awesome work !!!
Click to expand...
Click to collapse
Thanks for your support)) I think, you could use users general thread for test boot steps. The steps are the same, but with the current rootfs (0.5.0) linux in dualboot may not start. Android with CleanRom should work. Soon I will release a rootfs 0.6, which can be used with dualboot section.
rabits said:
Thanks for your support)) I think, you could use users general thread for test boot steps. The steps are the same, but with the current rootfs (0.5.0) linux in dualboot may not start. Android with CleanRom should work. Soon I will release a rootfs 0.6, which can be used with dualboot section.
Click to expand...
Click to collapse
can do for TF300 ?
tailormoon said:
can do for TF300 ?
Click to expand...
Click to collapse
I don't know - but you can try.
Hi
How is it going with the developpment? Is the dualboot working nice with Ubuntu now?
Do you think a cube desktop will ever be usable on a dualbooted Ubuntu on our device?
Thanks for the good work
Hello, I have managed to get this booting on my tf300t tablet. It is working alright and I would like to learn a bit about this area of development so I can tweak it to get it working as well as contribute to the project as a whole. So far it has bugs with wifi, bluetooth, and sound. Also, when I select shutdown from the ubuntu menu, it corrupts the image and it will boot to lightdm and then freeze. I tried compiling a kernel for it based on a tweaked tf700t 10.4.4.20 kernel that was patched by untermensch to work for the tf300t but it did not solve any issues, it pretty much performed the same. I wanted infrom everyone of the issues on the tf300t as well as ask for some guidance as to documentation for what steps I can take to fix these issues. Thanks.
keeganmccallum said:
I wanted infrom everyone of the issues on the tf300t as well as ask for some guidance as to documentation for what steps I can take to fix these issues. Thanks.
Click to expand...
Click to collapse
It seems that this is the rootfs problem. Maybe you find some info in tf300 forum or ubuntu forums, but you need try to read log files and, maybe, do hard gdb trace.
Trying it when i get home
Thanks
Sent from my GT-N7000 using xda premium
BTW happy to have CROMI involved with this
rabits said:
[*]boot.blob v0.6.2 - Anyone can try to flash it? I can't flash it by fastboot on AndroidRoot bootloader - maybe it should work on JB bootloader?
Click to expand...
Click to collapse
Your dummy signblob header is one byte too long - there is a 0a byte before "MSM-RADIO-UPDATE" that should not be there.
_that said:
Your dummy signblob header is one byte too long - there is a 0a byte before "MSM-RADIO-UPDATE" that should not be there.
Click to expand...
Click to collapse
Thanx, I missed this byte)) Damn sed. We should always use echo and cat))
Blob is updated.
rabits said:
Blob is updated.
Click to expand...
Click to collapse
Successfully flashed via fastboot and it booted my Android (still the old CleanROM 2.3) fine. The initrd menu and framebuffer console is awesome. Can't try your rootfs right now because my PC cardreader is making trouble (I hate SD cards and readers, they are unreliable sh**, or they hate me).
Only everything is very tiny (160 dpi instead of 240), and adding ro.sf.lcd_density=240 to /system/build.prop did not help. I'll have to add it to the initrd and see if it helps. Strange, because I thought newer CleanROMs also set the dpi via /system/build.prop, but who knows. Eventually I should install CRI 3.0 anyway.
Hm, while I was writing this, the TF700 spontanously rebooted... looks like problems turning off the screen. /proc/last_kmsg contained two WARNINGs with stack trace, both containing do_blank_screen (drivers/tty/vt/vt.c:3728 and vt.c:650)
I just read that this is Clemsyn's kernel - where did you find the sources for the current version and what did you modify? There are so many different binaries in that thread and so few source drops that I totally lost track.
Hi
I've just seen the cube desktop is know supported on 0.6.2. How is it performing ? Is the latest version smoother than 0.5 ?
Thanks for the great work!!! I hope our tabs will soon have a stable and smooth Ubuntu dualbootable with CROMI
_that said:
Only everything is very tiny (160 dpi instead of 240), and adding ro.sf.lcd_density=240 to /system/build.prop did not help. I'll have to add it to the initrd and see if it helps. Strange, because I thought newer CleanROMs also set the dpi via /system/build.prop, but who knows. Eventually I should install CRI 3.0 anyway.
Hm, while I was writing this, the TF700 spontanously rebooted... looks like problems turning off the screen. /proc/last_kmsg contained two WARNINGs with stack trace, both containing do_blank_screen (drivers/tty/vt/vt.c:3728 and vt.c:650)
Click to expand...
Click to collapse
Yeah, seems like too old CR version...
_that said:
I just read that this is Clemsyn's kernel - where did you find the sources for the current version and what did you modify? There are so many different binaries in that thread and so few source drops that I totally lost track.
Click to expand...
Click to collapse
You can find info about kernel here and here. I'm used this source from second link to build 0.6.2 kernel.
singoutout said:
Hi
I've just seen the cube desktop is know supported on 0.6.2. How is it performing ? Is the latest version smoother than 0.5 ?
Click to expand...
Click to collapse
I just installed extra plugins))) Currently Nexus7 is more smoothed then tf700 with unity... Cube is rotating ok, but with IO lags - sd speed so slow.
Currently I working on more basic things, like install linux in main flash drive. If you have any ideas - please, post it here.
Hi everyone,
I've been working on getting ArchLinuxArm running on the TF300 over at http://forum.xda-developers.com/showthread.php?t=1918849
Just something that might help with your touchscreen - you should be able to get basic functionality if you use the xf86-input-mtev driver (see https://aur.archlinux.org/packages/xf86-input-mtev-meego/ )
While less than ideal, it's better than nothing. We have the same issue with X segfaulting when the evdev driver is used. I actually looked into that, and it has to do with the way events are reported by the kernel driver, if I remember correctly.

Looking for a complete/real Linux on my Nexus 5

Hello everybody,
I've been trying to get a complete Linux (for example Debian or Ubuntu) on my old Nexus 5 (NOT Ubuntu-Touch). All the Linux commands ("sudo" etc.) should work and I need to install Python.
Since I would like to use the Nexus 5 only for network stuff and bots at home, I don't really need Android anymore on the device.
I have no additional equipment (for exemple Bluetooth keyboard / mouse or USB to HDMI adapter) and I would prefere not buy any equipment.
Windows 10 would be enough as well on the Nexus 5 (I read it should work with some Android devices).
I got TWRP recovery on the phone.
What I've tried so far:
1.
The Maru ROM (Android + Linux parallel running). However, for the first configuration on the Linux-Desktop it seems like I need an adapter + Bluetooth keyboard & mouse, since the first configuration has to be done on the desktop
But have no corresponding periphery.
After the initial configuration of the Linux Desktop/Interface, via USB to HDMI adapter, you can access the Linux system on the Nexus 5 via SSH or VNC.
Apparently it's also possible to do the first configuration of the Linux interface via VNC. But I have not succeeded. I've followed various instructions and tried from Android by using terminal emulator to acces the parallel running Linux. VNC Viewer Apps were also used. Everything did not work out. Either there were error messages that the system is not "listening" on the port or that the access was denied. Is there an idiot-safe step by step guide for this?
2.
Next I flashed "[NEXUS 5][N7.1.2] - Pure Nexus"
I tried to to configur the terminal emulator and Termux with BusyBox and the "sudo installer app" to behave as if the terminal would be a real Linux. I also failed (couldn't get sudo command and other commands to work).
3.
Finally, I've used the "Complete Linux Installer" app. However, it turned out that my kernel does not support "loop device" (which is a prerequisite). So I tested the Franco Kernel and another custom kernel (name forgotten), which also did not work. I haven't found a custom kernel which is explicit "loop device" supported.
What ROM / Kerel Combo is required to use "Complete Linux Installer"?
Since I need no Android it would be the simplest thing to flash Linux (or Win10) with TWRP on to the Nexus 5. Is there some pure Linux ROM for the N5?
Otherwise an idiot-safe step by step guide for the N5 for the method 1 (Maru ROM via VNC without HDMI adapter), or for the method 3 ("Complete Linux Installer") would be great!
If someone has a full functional Linux or Win10 on the Nexus 5 (without additional peripherals) please report! Thanks in advance!
really no one an idea?
A ROM/Kernel Combination for the Nexus 5 with "Loop Device" support would be enough! (see 3. "Complete Linux Installer")
playerkirk1 said:
The only way I could imagine installing Ubuntu or any form of Linux based OS other than android would involve using EFIDroid, which isn't hard to install at all.
Here's the link to that.
I'd imagine you'd have to find a way to efi boot a version of Ubuntu arm or Debian arm, because the Nexus 5 is an arm device. As for Windows 10, IIRC Microsoft still hasn't released Windows 10 arm out yet, so we can't find out if we can port it back to arm32 or lower end Snapdragon devices like the Nexus 5.
Click to expand...
Click to collapse
Ok nice thx! I'll try it with EFIDroid.
Unfortunately I have not much time most recently... So it will have to wait.
I'll report if I manage to run any Linux version on the N5.
One more Question:
Is it easy to find an arm version of Debian or Ubuntu? Haven't searched yet.
Why use EFIDroid?
I built Gentoo linux on my htc hd2 a yaer ago (and lost the image a few weeks ago). It's not really hard to install a full native linux system on your phone and boot to it DIRECTLY (without android).
All you need is
a custom kernel with support for loop devices (may need some changes later for the display, or some dirty hacks)
a base system for gentoo and some linux knowledge
creating a loopback device and using it for the system storage
working from within android in the beginning on the loopback device, until the base system is installed, configured, bootable and has SSH ENABLED via ethernet, with custom ip address (this is tricky, as it's the only way to use the phone before a gui is installed)
working from the pc using ssh, installing all needed packages
failing too many times until everything works
Edit: while installing the system, you must maintain an ssh connection via usb, as i said earlier, and to reach the internet, you must use iptables from the host pc to share the connection and configure your phone to get to the internet using the host.
As i said, i had done it in the past for the HTC HD2, but never posted it (due to ****ty internet connection). I had done all the system compiling directly on the HD2. On such a slow device (1ghz single core, 512mb ram, class 4 sd card) it took about 2 weeks for the GUI to be working.
What i did later was take the same base system and run it on the HTC M8. while it works, display never worked correctly. I had to use a program i compiled to refresh the screen all the time, which consumed cpu quickly.
Anyway, it can be done on any phone. There's no such thing as impossible.
A shot of the end result gui on hd2 (i know, horrible gui and wtf is that resolution )
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
tl;dr: Install Gentoo linux
@ playerkirk1
Ok thanks. Maybe this way leads to a solution for me.
@ gilbert32
Impressive! That seems to me like pretty advanced work! I'm afraid my Linux knowledge is fare under yours...
But like I thought, it's possible! Thanks for sharing!
gilbert32 said:
a custom kernel with support for loop devices (may need some changes later for the display, or some dirty hacks)
Click to expand...
Click to collapse
So again it depends on the custom Kernel with loop device suport. I couldn't find one explicitly supporting "loop device" for the N5.
If I had, I would have used the "complete Linux installer" app.
(Check out 3. on my first post)
shomu said:
So again it depends on the custom Kernel with loop device suport. I couldn't find one explicitly supporting "loop device" for the N5.
If I had, I would have used the "complete Linux installer" app.
(Check out 3. on my first post)
Click to expand...
Click to collapse
It's not that hard to get it working
Should be about downloading the source code of any kernel you want to use, make menuconfig, adding loop device support and compiling the kernel. it's about 5-6 commands.
I honestly didn't know this was even possible, but this is amazing. I just thought you'd need EFIDroid and an ISO to boot off of, but that seems way too complicated to do reliably. I'll definitely try this myself because it sounds awesome. Thank you, you rock!
Click to expand...
Click to collapse
Yes, it is very possible. In the old days before android (where developers used to port linux to windows mobile devices, using HaRet), it was about compiling a working kernel, adding a ramdisk that prepares the loop device and mounts it, then changing the root to the loop device. In another way, to achieve it on a new phone:
Build the os for your phone, or install it. You must have a working loop device in the end, containing the root filesystem
Create the init file to use with the ramdisk later
compile a kernel that supports all features required by the OS
package the ramdisk and kernel into a bootable image, that you can fastboot boot or flash
On The M8, This is what happens:
Bootloader boots boot.img. I use fastboot boot boot.img since i don't want to override my boot image
kernel boots and runs my init. Which is a series of shell commands.
The commands mount the required partitions, then mount the loopback device to somelocation
init calls for switch_root, which turns somelocation into the new root filesystem, and launches the appropriate init script (IIRC /sbin/init in gentoo)
the new init starts its work, calls for OpenRC, etc etc etc
As i said before, i got it booting on the HTC M8 by grabbing a working boot image for the device, and modifying the ramdisk to use scripts for the HD2. I had modified those scripts to match the M8 requirements, then repackaged the image and voila. If i still had my working image, i would've uploaded it for you and tried modifying the needed files.
If you get the needed kernel working, i will help you with the next steps
and just another pic i found.
gilbert32 said:
It's not that hard to get it working
Should be about downloading the source code of any kernel you want to use, make menuconfig, adding loop device support and compiling the kernel. it's about 5-6 commands.
Yes, it is very possible. In the old days before android (where developers used to port linux to windows mobile devices, using HaRet), it was about compiling a working kernel, adding a ramdisk that prepares the loop device and mounts it, then changing the root to the loop device. In another way, to achieve it on a new phone:
Build the os for your phone, or install it. You must have a working loop device in the end, containing the root filesystem
Create the init file to use with the ramdisk later
compile a kernel that supports all features required by the OS
package the ramdisk and kernel into a bootable image, that you can fastboot boot or flash
Click to expand...
Click to collapse
hm..ok, but I must say, I never compiled a kernel...
I got kind of "advanced" knowledge about android compared to normal "Smartphone users", but I'm definitely no developer!
So unfortunately compiling things is beyond my skills. I think I could do it with a step-by-step-tutorial, but I guess my request is too specific to find a fitting tutorial.
When it comes to Linux, I know some basics about the system and some basic commands. But usually when I'm doing stuff with Linux I use tutorials as well.
I have much more experience with Windows, html, css and some java...
So again, for everything that has to be done with Linux, I need an easy tutorial...
I appreciate your trying to help me, but unfortunately i must say it's way too advanced for me. without a detailed how-to, I will not be able to do this...
gilbert32 said:
and just another pic i found.
Click to expand...
Click to collapse
I'm feeling a bit ambitious and wanted to try something, just want to know if it's been done before.
So I want to use my other phone - Samsung Galaxy Nexus - as a home server (FTP, p2p for start and maybe some light home automation later if everything works well).
So there is a patch for the GNex kernel that allows for phone charging and OTG at the same time. Also, I would need to patch in the loop back into the kernel so I wanted to know if Gento would be able to access my HDD hooked on OTG and how the drivers work in general on Gento and if it is worth the hassle getting it from Android to Gento. Also, I plan to VNC into the phone so display drivers aren't needed to work 100%.
Opinions?
Just install Sailfish OS. It's Linux with just a modified GUI for phones.
Here you can get the latest images, instructions, help (if you need) and info about all the various things https://talk.maemo.org/showthread.php?t=99377
Then take a look at this thread https://talk.maemo.org/showthread.php?t=98882
this is a link to working arch linux chroot https://github.com/Preflex/easy-chroot/releases/tag/0.0.2
here is a pic from my setup
Now someone made a patch for wayland to open in landscape mode. here it is https://openrepos.net/content/elros34/qxcompositor
And here is also ubuntu chroot, which works with that patch https://github.com/elros34/sailfish_ubu_chroot
I moved away from android long ago. Because i want my privacy back from google. Now i do not use anything from google except youtube (without google account)
ILA said:
I'm feeling a bit ambitious and wanted to try something, just want to know if it's been done before.
So I want to use my other phone - Samsung Galaxy Nexus - as a home server (FTP, p2p for start and maybe some light home automation later if everything works well).
So there is a patch for the GNex kernel that allows for phone charging and OTG at the same time. Also, I would need to patch in the loop back into the kernel so I wanted to know if Gento would be able to access my HDD hooked on OTG and how the drivers work in general on Gento and if it is worth the hassle getting it from Android to Gento. Also, I plan to VNC into the phone so display drivers aren't needed to work 100%.
Opinions?
Click to expand...
Click to collapse
If you can get the HDD to work inside android, it will work inside Gentoo. As long as you can mount the HDD inside android it should be possible. And you really don't need android to mount it, just look for the dmesg and see if it's detected, or look for it in /dev/sdxx. If it works, then don't forget to install the specific HDD filesystem support in Gentoo.
The easiest way is Linux deploy in the Google play store, u have the option to install Ubuntu, Debian, Kali, etc. Also with the option of selecting your GUI such as KDE, lxde, etc. U can also chose to build it as an image or use an sdcard partition if you're advanced which is the best option. Most Android devices can easily support running Linux IMO, there hasn't been a device I haven't got it not running on, with the exception of the ones u can't root lol. Give it a try, you'll see what in talking about, as for the vnc use juice SSH on the play store, that's my favorite, also helps to install the hackers keyboard from the play store too. Depending on the internet it should take u less than 30 minutes to get Linux up and running
Sailfish OS (pretty darn good), Plasma-Mobile (not very efficient), and PostmarketOS (least efficient) are good alternatives
there is shortly to be some work done by wicket in my home community of Maemo ...
to get Maemo Leste OS running on the nexus 5 ...
I suggest patience.
it will happen...there are just the n9 and n900 to come first...(which are coming along nicely thus far ..)
I myself am looking forward to having Leste on both my n900's and Nexus 5's...
Leste for the nexus 5 should progress quite rapidly once work begins, considering the nexus 5 is the perfect candidate in compare with other devices.
So you may wish to keep an eyeball on the Maemo Leste OS project
shomu said:
really no one an idea?
A ROM/Kernel Combination for the Nexus 5 with "Loop Device" support would be enough! (see 3. "Complete Linux Installer")
Click to expand...
Click to collapse
KDE Plasma
Sailfish OS if you can figure out how to install manjaro
Ubuntu Touch with dock
Come on just use Google.

Boot into Debian or Arch possible on Smartphone? Universal Image for most Devices?

Hello Community!
I am asking myself it is possibe to direkt boot a debian ARM Port or ARCH Linux ARM Port (maybe from SD Card) on my Smartphone? I saw lots of videos booting a Linux on Top of Android but i would like to "natively" run a OS. Where a Custom ROM typically has drivers for a special type of device i am thinking if a very generel distribution could detect most of the devices hardware...
Any Ideas if this would be possible?
AFAIK it's not possible.
Can you give me a (detailled) hint why you think this would not work?
When reading the informations: https://archlinuxarm.org/about/downloads
The released downloads are designed for the specific systems above; however, our package repositories work with any ARM device compatible with ARMv5, ARMv6, ARMv7-a, or ARMv8-a AArch64 instructions.
In TWRP i can select Storage - maybe starting from TWRP command line a image start from SD Card would be possible?
You initially said your goal is to completely replace Android by Linux ( ARCH Linux - what is for tablets only ) on a smartphone, IIRC.
Now you say you want to run Linux ( ARCH Linux ) on top of Android. Confused ...
hello! i meant that my smartphone can start the TWRP bootloader and from there the boot process could be (maybe) handed over to an image at the SD card....
thats the idea... ;-)
TWRP is a Custom Recovery means a restricted Android OS ( like Windows RE for Windows machines), not a bootloader ( what is comparable to UEFI / BIOS on Windows machines ).
The Android bootloader starts the recovery mode and the kernel, which then starts the operating system of your smartphone.

Categories

Resources