[DEV] Multiboot Linux on Infinity tf700 (project closed) - Asus Transformer TF700

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.

Related

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

Kexec-hardboot patch

In this post, I would like to explain what kexec-hardboot patch is and also bring it to light a bit more since until now, it was only burried in MultiROM thread.
@kernel developers: I would like to ask you to merge this patch to your kernels, because it is essential part of MultiROM - it allows me to boot any kernel without changing the boot partition. I realize that it is no small request, but the patch is not big, touches relatively stable parts of kernel and should not cause any problems. Thank you.
What is kexec?
It is syscall of Linux kernel, which allows you to boot another Linux kernel without restarting the device - "Linux boots itself". The functionality is equivalent to fastboot -c *cmdline* boot zImage initrd.img, but without PC and fastboot. It is fairly known thing, so more info at wikipedia and man kexec.
Standard kexec call unfortunatelly does not work on Nexus 7. It freezes somewhere, and it is very difficult to find out where - probably some of the drivers are not shut down/re-initialized properly, it is a commong thing among Android devices, which is why kexec-hardboot was made.
What is the difference between normal and hardboot exec?
Kexec-hardboot patch adds a real device restart to that process, so that all the drivers can be properly reinitialized. It stores new kernel to RAM, reboots the device as usual, and kernel from boot partition immediately jumps to the one which was stored to RAM before reboot.
Another difference is that both kernels must be patched. The "host" kernel requires a full patch, the one which is being kexecd' requires only two small compatibility patches.
To sumarize the process:
kexec --load-hardboot.... is called and kernel it loaded into RAM.
kexec -e is called. Special info is written to memory (to area which is not overwritten on reboot) and the device is rebooted.
After reboot, very early in the boot process, kernel checks if that special info is present in RAM and if so, it loads new kernel from RAM and jumps to it.
Kexecd' kernel starts and boots.
For more info, read the original thread.
Patches:
Full kernel patch: https://gist.github.com/4558647, 4.1 kernel repo, cm 10.1 kernel repo
This is the full kernel patch. Kernels with this patch can be both "host" and "guest" kernels.
Related CONFIG options:
CONFIG_KEXEC=y
CONFIG_KEXEC_HARDBOOT=y
CONFIG_ATAGS_PROC=y
CONFIG_GROUPER_HARDBOOT_RECOVERY=n
First three options must be enabled. Last one, GROUPER_HARDBOOT_RECOVERY, specifies if the kexec call should reboot to normal mode or to recovery. This can be useful if you don't have the kernel in boot partition but only as kernel in recovery partition. You usualy want to disable this option.​
Compatibility patch: https://gist.github.com/4458581
This patch only makes the kernel bootable via kexec, ie. it can't be the host kernel. This was made for Ubuntu kernel (and it was accepted), because I did not want to drag the whole patch in there. If your kernel is for Android ROMs, you should use the full patch.​
Userspace kexec binary: View attachment kexec-tools.zip
That ZIP file contains kexec source, patches and README. It is from the original patch from Mike Kasick. It also contains precompiled, statically linked kexec binary, so you probably just want to use that.​
Usage:
Once you have the kernel patches and kexec userspace binary in place, just run following command to boot into new kernel:
Code:
kexec --load-hardboot zImage --initrd=initrd.img --mem-min=0x85000000 --command-line="$(cat /proc/cmdline)"
kexec -e
Note the command line parameter - cmdline from bootloader is not added automatically, you have to put it there by yourself.
Currently used by:
MultiROM - I use it to boot different kernels (eg. Ubuntu).
MOSLO - Part of Plasma Active for Nexus 7, also usefull tool for every N7 developer - read more: http://ruedigergad.com/2012/12/09/nexus-7-easily-flashaccess-entire-userdata-partition/
Authors:
This patch was made by Mike Kasick for Samsung Epic 4G. Since that, it was ported to several devices, one of them is Asus Transformer TF201 - I used patch from TF201 and modified it a bit (basically just changed few SoC specific constants). People at #ubuntu-arm helped me out with that, thanks.
Hi Tasssadar,
im trying to get this to work on the HOX in order to have a shot at multiboot,
the patched applied with no problem... however on compiling i gett this error
"Adress for kexec hardboot page not defined"
ask this error naturely defined to kick in with every device beside N7 i that comment completely....
and that ended up giving me an error about KEXEC_HB_PAGE_ADDR not defined,
so i readded it, but i removed the "#if defined(CONFIG_MACH_GROUPER)"
now trying to compile it, its gets pretty close to the end... but failed with unexpected string error at line OUTPUT_ARCH(arm) in file linux/arch/arm/boot/compressed/vmlinux.lds
Code:
/*
* linux/arch/arm/boot/compressed/vmlinux.lds.in
*
* Copyright (C) 2000 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
OUTPUT_ARCH(arm)
ENTRY(_start)
SECTIONS
{
/DISCARD/ : {
*(.ARM.exidx*)
*(.ARM.extab*)
/*
* Discard any r/w data - this produces a link error if we have any,
* which is required for PIC decompression. Local data generates
* GOTOFF relocations, which prevents it being relocated independently
* of the text/got segments.
*/
*(.data)
}
. = 0;
_text = .;
.text : {
_start = .;
*(.start)
*(.text)
*(.text.*)
*(.fixup)
*(.gnu.warning)
*(.glue_7t)
*(.glue_7)
}
.rodata : {
*(.rodata)
*(.rodata.*)
}
.piggydata : {
*(.piggydata)
}
. = ALIGN(4);
_etext = .;
.got.plt : { *(.got.plt) }
_got_start = .;
.got : { *(.got) }
_got_end = .;
_edata = .;
. = ALIGN(8);
__bss_start = .;
.bss : { *(.bss) }
_end = .;
. = ALIGN(8); /* the stack must be 64-bit aligned */
.stack : { *(.stack) }
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
}
also, im booted into windows now... so i can't provide the exact error.
I'm afraid "comment everything which doesn't work" won't work here. The KEXEC_HB_PAGE_ADDR and END_MEM is device-specific, it will most likely be different for HTC One X. You can find out what address is it supposed to be by examining /proc/iomem on your device. For example, here's memory map from grouper:
Code:
...
80000000-be9fffff : System RAM
80008000-808faba7 : Kernel text
80940000-80b8228f : Kernel data
beb00000-bebfffff : ram_console
...
So, for grouper, END_MEM is 0xbe9fffff + 1 = 0xbea00000.
KEXEC_HB_PAGE_ADDR is located 1MB before console RAM, which is in this case also immediatelly after System RAM, so for grouper, it is also 0xbea00000.
but failed with unexpected string error at line OUTPUT_ARCH(arm) in file linux/arch/arm/boot/compressed/vmlinux.lds
Click to expand...
Click to collapse
That doesn't seem to be related to this patch. Are you using correct cross-compiler?
Tasssadar said:
I'm afraid "comment everything which doesn't work" won't work here. The KEXEC_HB_PAGE_ADDR and END_MEM is device-specific, it will most likely be different for HTC One X.
Click to expand...
Click to collapse
i figured
but im walking you through what i did.
You can find out what address is it supposed to be by examining /proc/iomem on your device. For example, here's memory map from grouper:
Code:
...
80000000-be9fffff : System RAM
80008000-808faba7 : Kernel text
80940000-80b8228f : Kernel data
beb00000-bebfffff : ram_console
...
So, for grouper, END_MEM is 0xbe9fffff + 1 = 0xbea00000.
KEXEC_HB_PAGE_ADDR is located 1MB before console RAM, which is in this case also immediatelly after System RAM, so for grouper, it is also 0xbea00000.
Click to expand...
Click to collapse
Code:
7d000000-7d003fff : tegra-udc.0
7d000000-7d003fff : tegra-otg
7d000000-7d003fff : tegra-udc
7d004000-7d007fff : tegra-ehci.1
80000000-beafffff : System RAM
80008000-8094000f : Kernel text
809a8000-810b940f : Kernel data
beb00000-bebfffff : ram_console
bec00000-beffffff : fbmem
bf000000-bf7fffff : fbmem
0xbeafffff + 1 = 0xbeb00000
grrr that would put me inside the ram_console...
aaaa would it wok if i used the address before??
7d00800
Edit:
or did your ram RAM end earlier because you set you END_MEM 0xbea00000
in that case, it works out just the same with the HOX
That doesn't seem to be related to this patch. Are you using correct cross-compiler?
Click to expand...
Click to collapse
i would have guessed so, but the kernel compiled and is working before the patch.
im using the one provided by google (Android NDK r9) while it contains booth gcc 4.6/4.8 im using 4.6 (arm-linux-androideabi-)
The patch will move ram_console 1MB further, see https://gist.github.com/Tasssadar/4558647#file-n7_hardboot-diff-L387 . You'll have to modify this part of the patch, it will be in different file for your device.
Tasssadar said:
The patch will move ram_console 1MB further, see https://gist.github.com/Tasssadar/4558647#file-n7_hardboot-diff-L387 . You'll have to modify this part of the patch, it will be in different file for your device.
Click to expand...
Click to collapse
HOX is also a Tegra 3 device... so im guessing i wont need to touch a thing?
also note... that iomem provided is from an unpatched kernel (as i cant compile a patched one)
also,
im currently on freenode #htc-one-x
if you dont mind joining.
I've been looking through the kexec-hardboot patch these last few days, trying to actually understand it instead of just blindly porting it and after several hours of messing with assembler with no means to debug it, I've managed to remove the need for guest kernel to be patched. This is not really useful for grouper, since thanks to multirom and accepting kernel devs, nearly every third-party kernel has the proper patches. But, if I'll port multirom to some other device (hello, flo), it will be very useful
To know more see the changes in this commit, but you'll probably need to understand how the patch does things: https://github.com/Tasssadar/androi...mmit/2ce4130061f72430a8ddfde25346c4e528c5c30b
@mkasick: Could you please look over this? I'm afraid there's some good reason why you didn't do this in the first place, like rewriting some part of memory which shouldn't be rewritten or something like that. Thank you.
Tasssadar said:
I've been looking through the kexec-hardboot patch these last few days, trying to actually understand it instead of just blindly porting it and after several hours of messing with assembler with no means to debug it, I've managed to remove the need for guest kernel to be patched. This is not really useful for grouper, since thanks to multirom and accepting kernel devs, nearly every third-party kernel has the proper patches. But, if I'll port multirom to some other device (hello, flo), it will be very useful
To know more see the changes in this commit, but you'll probably need to understand how the patch does things: https://github.com/Tasssadar/androi...mmit/2ce4130061f72430a8ddfde25346c4e528c5c30b
@mkasick: Could you please look over this? I'm afraid there's some good reason why you didn't do this in the first place, like rewriting some part of memory which shouldn't be rewritten or something like that. Thank you.
Click to expand...
Click to collapse
Perfect timing, just finished my last exam
Edit:
Also, this applies on top of the original patch right??
Edit2:
i can't seem to get it to kexec boot, but i didn't do much testing, maybe 2morrow night!
Edit3:
fixed, it was a problem with min-addr,
changed it to 0x82000000 and it worked
One more question...
TEGRA_PMC_BASE is also device specific, ain't it???
So, for a Qualcomm device, what should I be using? I am guessing it is MSM_RPM_BASE, which I got from here: http://forum.xda-developers.com/showpost.php?p=31127486&postcount=7
Yes, it is SoC-specific. This is using some special register to reset the chip, I'm not sure if that is available on msm chips - probably yes, but in some different form. Your best chance is to examine restart sequence in arch/arm/mach-msm/restart.c and port it to assembler.
Tasssadar said:
Usage:
Once you have the kernel patches and kexec userspace binary in place, just run following command to boot into new kernel:
Code:
kexec --load-hardboot zImage --initrd=initrd.img --mem-min=0xA0000000 --command-line="$(cat /proc/cmdline)"
kexec -e
Click to expand...
Click to collapse
The address of 0xA0000000 is not necessarily the best choice going forward. It originally made perfect sense, as it is well above everything else. But now that we can boot unpatched guest kernels, we can hit the interesting situation where the guest decompression may take a full minute. At least it's when I've seen on the Ouya game console that's running the next chip after Grouper.
When I realized what's going on, I changed to 0x8E000000, as it gets me just below the 256 MB limit of cache-enabled memory that's present on a typical guest at that early decompression stage. It's enough to hold a typical 8 MB boot image kernel/ramdisk. Now the guest kernel startup is fast in all cases.
Thank you Tasssadar for continuing your work in this area, especially with finding that way to allow unpatched guests.
Indeed, that's actually what I'm using in MultiROM for flo and mako (and grouper, but it is useless 'cause not all 3rd-party kernels have been updated), I just kinda "forgot" to update these threads.
Would it work on devices with locked bootloaders (Xperias). I mean :does the idea of this patch would also work on bootloader unlock allowed :no devices?
Sent from my LT22i using xda app-developers app
I am trying to build a kexec patched kernel integrated into a ROM. I make sure that the following code is there in the defconfig:
CONFIG_KEXEC=y
CONFIG_KEXEC_HARDBOOT=y
CONFIG_ATAGS_PROC=y
The ROM works well, except that it does not boot my secondary ROMs - kexec hardboot patch missing. I have multi ROM and TWRP recovery installed
What am I missing?
Logs or it didn't happen.
Show me dmesg from normal boot into android, with MultiROM and your kernel installed.
Code:
adb shell
su
dmesg > /data/local/tmp/dmesg.txt
exit
exit
adb pull /data/local/tmp/dmesg.txt
Porting?
Tassadar which things do I need to boot kexec kernel on my device (Motorola Electrify 2) .
@Tasssadar, Sorry for picking up this kinda "old topic" but I'm sadly experiencing some problems while trying to port kexec-hardboot to the Sony Xperia Z2 (aka sirius). I applyed all needed commits (cherry-picked from a apparently working Z1 repo for stock kernel) to my CM based custom kernel (https://github.com/Myself5/android_kernel_sony_msm8974/tree/kexec-cm-12.0) and it does not boot at all. It's stuck on the Sony Logo, and it seems like I can't get any log either. I also tryed the stock cm kernel with the patch (https://github.com/Myself5/android_kernel_sony_msm8974-kexec) cause I tought it might be some incompatibility, but sadly it wasn't. Hope you have any ideas to solve my problems, cause I'm out of ideas ATM. I also checked the kexec commits for other devices (namely the One Plus One) and it seems like I got everything needed.
Thanks in Advance
Tasssadar said:
In this post, I would like to explain what kexec-hardboot patch is and also bring it to light a bit more since until now, it was only burried in MultiROM thread.
@kernel developers: I would like to ask you to merge this patch to your kernels, because it is essential part of MultiROM - it allows me to boot any kernel without changing the boot partition. I realize that it is no small request, but the patch is not big, touches relatively stable parts of kernel and should not cause any problems. Thank you.
What is kexec?
It is syscall of Linux kernel, which allows you to boot another Linux kernel without restarting the device - "Linux boots itself". The functionality is equivalent to fastboot -c *cmdline* boot zImage initrd.img, but without PC and fastboot. It is fairly known thing, so more info at wikipedia and man kexec.
Standard kexec call unfortunatelly does not work on Nexus 7. It freezes somewhere, and it is very difficult to find out where - probably some of the drivers are not shut down/re-initialized properly, it is a commong thing among Android devices, which is why kexec-hardboot was made.
What is the difference between normal and hardboot exec?
Kexec-hardboot patch adds a real device restart to that process, so that all the drivers can be properly reinitialized. It stores new kernel to RAM, reboots the device as usual, and kernel from boot partition immediately jumps to the one which was stored to RAM before reboot.
Another difference is that both kernels must be patched. The "host" kernel requires a full patch, the one which is being kexecd' requires only two small compatibility patches.
To sumarize the process:
kexec --load-hardboot.... is called and kernel it loaded into RAM.
kexec -e is called. Special info is written to memory (to area which is not overwritten on reboot) and the device is rebooted.
After reboot, very early in the boot process, kernel checks if that special info is present in RAM and if so, it loads new kernel from RAM and jumps to it.
Kexecd' kernel starts and boots.
For more info, read the original thread.
Patches:
Full kernel patch: https://gist.github.com/4558647, 4.1 kernel repo, cm 10.1 kernel repo
This is the full kernel patch. Kernels with this patch can be both "host" and "guest" kernels.
Related CONFIG options:
CONFIG_KEXEC=y
CONFIG_KEXEC_HARDBOOT=y
CONFIG_ATAGS_PROC=y
CONFIG_GROUPER_HARDBOOT_RECOVERY=n
First three options must be enabled. Last one, GROUPER_HARDBOOT_RECOVERY, specifies if the kexec call should reboot to normal mode or to recovery. This can be useful if you don't have the kernel in boot partition but only as kernel in recovery partition. You usualy want to disable this option.​
Compatibility patch: https://gist.github.com/4458581
This patch only makes the kernel bootable via kexec, ie. it can't be the host kernel. This was made for Ubuntu kernel (and it was accepted), because I did not want to drag the whole patch in there. If your kernel is for Android ROMs, you should use the full patch.​
Userspace kexec binary: View attachment 1653562
That ZIP file contains kexec source, patches and README. It is from the original patch from Mike Kasick. It also contains precompiled, statically linked kexec binary, so you probably just want to use that.​
Usage:
Once you have the kernel patches and kexec userspace binary in place, just run following command to boot into new kernel:
Code:
kexec --load-hardboot zImage --initrd=initrd.img --mem-min=0x85000000 --command-line="$(cat /proc/cmdline)"
kexec -e
Note the command line parameter - cmdline from bootloader is not added automatically, you have to put it there by yourself.
Currently used by:
MultiROM - I use it to boot different kernels (eg. Ubuntu).
MOSLO - Part of Plasma Active for Nexus 7, also usefull tool for every N7 developer - read more: http://ruedigergad.com/2012/12/09/nexus-7-easily-flashaccess-entire-userdata-partition/
Authors:
This patch was made by Mike Kasick for Samsung Epic 4G. Since that, it was ported to several devices, one of them is Asus Transformer TF201 - I used patch from TF201 and modified it a bit (basically just changed few SoC specific constants). People at #ubuntu-arm helped me out with that, thanks.
Click to expand...
Click to collapse
I'm sorry for picking up this older topic as well, but I always played with the thought of merging kexec support into a kernel and I'm doing one right now.. But my secondary device is a LG G2 and since the era of Lollipop began, somehow MultiBoot just stopped working and nobody can figure out why. I think they even started to build some new concept now.. So before I spark a heated debated by Note 4 users I'd love to know if you have any idea if this patch is still applicable? Altough the only way to find out is to probably just try it lol.
Tasssadar said:
In this post, ....
Click to expand...
Click to collapse
Bro can you please mention on your wiki that kexec isnt supported for x64 devices? It will be great help and save developers hours! I was porting for oneplus 2 when a dev told me that kexec isnt there for x64. I was shocked
Is any alternative available for that? Please reply! Thanks.
All other devs, who cant make multirom to work (lollipop is the x64 era) stop working. Kexec isnt supported for x64. Find an alternative for it.
Can Anyone help me to port this? Here is my patched kernel (ignore arch/arm64) and this is /proc/iomem.
Code:
80000000-854fffff : System RAM
80008000-80fa43ef : Kernel code
81112000-817bf797 : Kernel data
8cb00000-9fefffff : System RAM
9ff00000-9ff3ffff : persistent_ram
9ff40000-9ff7ffff : persistent_ram
9ff80000-9fffffff : persistent_ram
a0000000-ffffefff : System RAM
For kexec_hb_page_addr the value i inseted is 85500000 coz as tasssadar said 884fffff + 1 = 85500000, but I don't know what value add for
Code:
#elif defined(CONFIG_ARCH_MSM8916)
/* Restart using the PMIC chip, see mach-msm/restart.c */
ldr r0, =MSM8916_HARDBOOT
mov r1, #0
str r1, [r0, #0]
loop: b loop
MSM8916_HARDBOOT, and if I compile the kernel it stucks on samsung logo.

make kexec guestable kernels

hi all,
i'm going to support multiple android roms loading in my kernel_chooser + root_chooser project.
in few words it will be a powerful bootloader for android.
this is what it will be able to do ( many points are yet working ):
kernel loading thought kexec
boot from external devices
boot from subfolders
custom background
change android /sytem partition
change android /data partition
wipe android /cache partition
what i'm asking to you it's to make your android rom's kernel kexec-ready, applying them a kexec guest patch.
thus to make them ready to load for me.
if not i have to patch your kernel every time you modify it.
kernel_chooser and root_chooser are hosted here: https://github.com/tux-mind/tf201-dev
they are made for the asus transformer prime ( TF201 ), but they can run on any android device with your help.
i will add you to the github collaborators if you want to help.
now we are working on multiple android roms support.
thanks in advance for your time.
-- tux_mind
@tux_mind sounds like an interesting idea. So this works for all device's kernels? Once I apply the patch to my kernel source, what happens after that? I'll make sure to follow your progress, good work
HTCDreamOn said:
@tux_mind sounds like an interesting idea. So this works for all device's kernels? Once I apply the patch to my kernel source, what happens after that? I'll make sure to follow your progress, good work
Click to expand...
Click to collapse
thanks
yes, this should work for all devices, except for a little tuning of the partition with the configuration data ( /data ).
i have to make it to self-detect the /data partition.
let's say for example that you want to use it on your HTC Vision.
i have to build an host kernel by the stock one applying the host kexec patch.
than i have to build an android boot image which contains kernel_chooser as initrd and the above kernel.
this android boot image will be written to your current one though fastboot.
after that kernel_chooser will be able to load any kernel patched with the guest patch.
obviously the loaded kernel must be made for that device
it can also load a custom initrd and use a custom kernel CMDLINE.
so, after i made a HTC Vision kernel_chooser, your rom it's ready to load if you applied the guest patch to you kernel.
i can't explain well how to make you rom "bootable" because we are developing this
but if your kernel is kexec-loadable it will be supported by kernel_chooser.
i will update you in the next days
bye!
Really great idea! As it support other devices I can throw in my kernel which is a kexec one for the Motorola RAZR, because of our locked bootloader. The question is: how different are the methods to use kexec?
M.o.t.o.r.o.l.a.R.a.z.r - JBX-Kernel 0.5a - Tapatalk4
@tux_mind this'll sound really stupid but how do actually patch our kernels for this? Do I have to build kexec from here or something?
dtrail1 said:
how different are the methods to use kexec?
Click to expand...
Click to collapse
kexec it's a syscall, so it's the same on every arm device.
HTCDreamOn said:
@tux_mind this'll sound really stupid but how do actually patch our kernels for this? Do I have to build kexec from here or something?
Click to expand...
Click to collapse
there is a good explaination here:
http://forum.xda-developers.com/showthread.php?t=2104706
look at the "Compatibility patch".
for my tf201 the guest patch is this: http://git.lilstevie.geek.nz/?p=ubu...ch;h=54c2e480682afb0629f3854dfea4154f528421e5
which is almost the same...
i hope that almost all kernels have the same host/guest patch, in order to save us a lot of work.
the patch isn't need for kexec, but for hardboot kexec, thus to physically shutdown and restart the device with your kernel, from 0.
the standard kexec it's a assembly jump to 0 ( jmp 0x0 ) with the new kernel loaded in the .text section.
but the standard method don't reinitialize the devices and many other things that could rest in a undefined state.
btw, i have almost done my work.....i'm fighting the android udev which is overwriting my symlinks..
see you!
i got it!
my initial target was to remove devices created by ueventd and replace them with symlink to loop devices.
but android respawn ueventd and replaces my symlinks...
i tried to start the android ueventd, leave it running, and replace the /sbin/ueventd with a infinite sleep static program
but android dont' start at all..i can't even access via adb.
so, the "final" solution is to edit the /fstab.$hardware, which should be in any andoird boot image ( right ? ).
please feel free to suggest any other way to hack the mount process.
you can find the sources here: https://github.com/tux-mind/tf201-dev/tree/master/android_chooser
the program read the paths from kernel cmdline.
the syntax is that:
Code:
newandroid=blkdev:initrd_path:fstab_path
where
blkdev is the linux name of the blockdevice containing the next args ( e.g. /dev/mmcblk0p8 )
initrd_path is the path on the previous blockdevice of the android initrd ( gzipped or not )
fstab_path is the path on the previous blockdevice of the fstab file
the fstab file have this syntax:
Code:
/android/mountpoint /path/to/image/file
where
/android/mountpoint is the android mountpoint to overwrite ( e.g. /system )
/path/to/image/file is the path to the filesystem image file ( on blkdev ) ( e.g. /boot/unrooted.img )
i don't make any documentation until i will be sure that there is no better way to do this.
thanks in advance for your testing
ah, some other useful info.
because we are in testing the program write a log file with some debug info in the root of your blkdev.
so you will find /android_chooser.log on your blkdev with these info in case of errors.
tux_mind
Please
dtrail1 said:
Really great idea! As it support other devices I can throw in my kernel which is a kexec one for the Motorola RAZR, because of our locked bootloader. The question is: how different are the methods to use kexec?
M.o.t.o.r.o.l.a.R.a.z.r - JBX-Kernel 0.5a - Tapatalk4
Click to expand...
Click to collapse
Dtrail could you explain me kexec and its components required for loading new kernel because my device(electrify 2) is similar to droid razr. Using bmm kexec is boot able because I had checked by flashing droid razr's kernel which gave a boot loop.
I would be pleased and thankful to you if you help me.

[Linux] [IMG] [Dev] [WIP] *Ubuntu images for Rootbind [TF101 / TF101G]

:::::::::::::: UPDATED :::::::::::::::::::​
Lubuntu 14.04 with Tegra drivers by DJDILL​
This is build off the core by @jrohwer​
Screenshots to come..
Download:
Torrent: tf101-14.04-Lubuntu-Tegra-armaf.tar.gz
Seed this as much as you can to help others..
DIRECT DOWNLOAD:
Main: tf101-14.04-Lubuntu-Tegra-armaf.tar.gz
Goo.IM: tf101-14.04-Lubuntu-Tegra-armaf.tar.gz
Dropbox: tf101-14.04-Lubuntu-Tegra-armaf.tar.gz
Mega: tf101-14.04-Lubuntu-Tegra-armaf.tar.gz
MD5: fca17ed3b426848a97175a9f8c5069a2
SIze: 630MB download
Ondisk: 2gb+ (Sorry, I will trim in the next build)
What works:
- Tegra drivers
- Hotkeys - Use shift+ Hotkey
- Media hotkeys work for VLC use ALT + Hotkey
- Vol keys (rockers) on the side
- OSK on boot for login - You need to press the button next to shutdown to get it to come up.. click twice.
- Sound - but cuts out on some mp3s and will not come back until the tab is fully powered down and back up (not just restart)
- Touchegg
- Bluetooth
- Firefox Youtube (HTML5), VLC video play back (as seen in the youtube in post two) -- This may not work.. BUT!!!!!!!! copy the youtube link to VLC and play it..... It works much better!
- HDMI
- Web / Video camera via USB Logitech C110
--------MODULES addins for kernel .10.12 only
- USB DVD PlayBack works with VLC
- USB DVD rw
- USB Audio / Sound
- USB Network adaptors - dm9601
Fixes from other builds:
- Screen will go to black to save power.
LOGIN Info:
User: tf101
Password is: ubuntu
Please change this for your own piece of mind
HOW TO:
Follow @Kingzak34 Great guide to get it all setup and working:
http://forum.xda-developers.com/showthread.php?t=2684854
THIS NEEDS TO BE UPDATED... OLD
How to change things in this build Post #157
Problems: (in order of what makes me angry)
- Icon theme RED Icon network manager-- Fix here (sorry)
- SD card will not auto mount, delete key will not work - Fixes here: POST 268
- Sound .. Is buggy and crashes .. May need new driver or patch for alsa.. Needs to be fixed..
- Mic does not pickup audio
- GPS
- Cam (both)
- tilt sensors
- Maybe 3G internet.. I don't have a TF101G to test that it works.
--- I am working on the sound issues with kernel modules..
FIXED Problems in this build:
- Sound headphones does not kill speakers sound (they both play) - see workarounds
- VLC crashes when playing mp3s.. use gnome-mplayer for now
- Keyboard: Bluetooth hotkey.. I have the code but didn't add it to disable bluetooth, auto brightness hotkey
- ZRAM -- see post #166
- adduser /sbin commands don't work.. run this: export PATH=$PATH:/sbin:/usr/sbin
If you know of more bugs let me know..
Workarounds:
Firefox can be slow.. Install "no script" plugin.. then its heaps better
Keyboard and mouse can stop if the battery is getting low.. Just redock
- Sound headphones does not stop the speakers playing sound - Use alsamixer on command line and press M on the one you want to mute
- If the sound does not work at all..Run alsamixer and toggle DRC (m button)
What can I do with this that I can't do with Android?
USB printing
Full Desktop and mouse etc..
Crack wifi
Use a second screen.. not as a clone - via HDMI
DVD burning
DVD playback
Lubuntu / ubuntu apps
Get frustrated!
-------------------------------------------------------
Ubuntu 14.04 CORE With Tegra drivers by @jrohwer​
Core Shell ubuntu see post: #233
INFO:
Ubuntu 14.04 base system. It boots to the console. It has all the xserver packages set up and pre-installed correctly. All the convencience scripts are there, the Tegra drivers are installed, firmware for wifi and bluetooth is pre-installed, init script for bluetooth fixed, kernel modules for rootbind kernels are preinstalled.
Download links on the post above.. I will mirror later
Kubuntu 14.04 With Tegra drivers by @jrohwer​
KDE (kde-plasma-desktop) - Please read the below.
{
"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"
}
Please see info here!: @jrohwer kernel thread post 303
Please note this will not work with .12 OC kernel.. Only with Kernel from post one of Jrohwer or .10
See posts in this thread for issues with boot and posting to black
Main Download link (google): kubuntu-14.04.tar.bz2
Mirror: kubuntu-14.04.tar.bz2
Mirror (Mega) : kubuntu-14.04.tar.bz2
Torrent: kubuntu-14.04.tar.bz2
MD5:
2a4d63cd4cf7f714e191e832d15abe7d
This build is by Jrohwer all credit goes to him .. As does the kernel for my builds
Lubuntu 12.04.4 With Tegra drivers​
:::::: Image is for @jrohwer kernel on post 3 - rootbind
3.1.10-12 oc - It also includes the other kernels modules and FW on his thread.
This is the kernel I use:
http://forum.xda-developers.com/attachment.php?attachmentid=2379482&d=1383923374
Please see his thread here: http://forum.xda-developers.com/showthread.php?t=2347581
Go and thank him for making this kernel!
:::::::
DOWNLOAD HERE!!
Mirrors to come soon!
Torrent: http://forum.xda-developers.com/attachment.php?attachmentid=2735900&d=1399720601
Direct Download: tf101-12.04.4-Lubuntu-armhf-Tegra.tar.gz
Goo.im Download: tf101-12.04.4-Lubuntu-armhf-Tegra.tar.gz
Dropbox Download: tf101-12.04.4-Lubuntu-armhf-Tegra.tar.gz
(maybe I will get banned)
Mega Download: tf101-12.04.4-Lubuntu-armhf-Tegra.tar.gz
Firedrive Download: tf101-12.04.4-Lubuntu-armhf-Tegra.tar.gz
md5 hash:
b60b7ca68c204421b576dc973b017432
(you can use Ez File Explorer to test the hash for Android, or md5sum under Linux)
545.6 MB download
Unpacks to 1.7gb on disk
What is says on the box
Includes everything so you can point and shoot
What works:
- Tegra drivers
- Hotkeys - Use shift+ Hotkey
- Vol keys on the side
- OSK on boot for login
- Sound - but cuts out on some mp3s and will not come back until the tab is fully powered down and back up (not just restart)
- Touchegg
- Bluetooth
- Firefox Youtube (HTML5), VLC video play back (as seen in the youtube in post two)
- HDMI
- Web / Video camera via USB Logitech C110
- USB DVD rw via module add on see this post:
USB dvd support for 10.12 Rootbind
Fixes from other builds:
- System does not fully turn off the sreen / keyboard so it can always be woken up from keyboard press - this can be changed from power manager
- Auto usb mount
- Cheap usb network adaptors driver installed dm9601
- Play, Next and back hot keys talk directly with gnome-mplayer.. So play your mp3s with that
- Audio controls (hotkeys) on have been mapped to turn down both the headphones and speakers.. at the same time .. As the mixer does not have a "master" control. (see problem / workarounds)
LOGIN Info:
User: tf101
Password is: ubuntu
Please change this for your own piece of mind
HOW TO:
Follow @Kingzak34 Great guide to get it all setup and working:
http://forum.xda-developers.com/showthread.php?t=2684854
How to change things in this build Post #157
Problems: (in order of what makes me angry)
- Sound .. Is buggy and crashes .. May need new driver or patch for alsa.. Needs to be fixed..
- Sound headphones does not kill speakers sound (they both play) - see workarounds
- VLC crashes when playing mp3s.. use gnome-mplayer for now
- Mic does not pickup audio
- Keyboard: Bluetooth hotkey.. I have the code but didn't add it to disable bluetooth, auto brightness hotkey
- GPS
- Cam (both)
- tilt sensors
- Maybe 3G internet.. I don't have a TF101G to test that it works.
- ZRAM -- see post #166
- adduser /sbin commands don't work.. run this: export PATH=$PATH:/sbin:/usr/sbin
If you know of more bugs let me know..
Workarounds:
Firefox can be slow.. Install "no script" plugin.. then its heaps better
Keyboard and mouse can stop if the battery is getting low.. Just redock
- Sound headphones does not stop the speakers playing sound - Use alsamixer on command line and press M on the one you want to mute
- If the sound does not work at all..Run alsamixer and toggle DRC (m button)
What can I do with this that I can't do with Android?
USB printing
Full Desktop and mouse etc..
Crack wifi
Use a second screen.. not as a clone - via HDMI
Get frustrated!
Super thanks to:
@ Everyone who keeps using the TF101.. You all inspire me to keep making this better!
@Kingzak34 - For Guides and keeping me working on this project.
@jrohwer - for making / hacking together the kernel.. That makes this all possible
@Sni - kernel patches
@x3maniac - for getting me my first tf101 Linux based Roms and support
Mini 12.04.4 LTS ::: Ubuntu Core with LXDE armhf
No Frills! .. Nothing really installed at all.. Add what you want Minimal install
-Super small 320mb unpacked - 160mb packed
-Very light on ram (160Used on startup)
-Tegra drivers installed & working
-Wifi works
-HDMI works
-Video playback + Youtube HTML5 works
Not tested / note included: Bluetooth, Hotkeys (scripts are present).. to turn down brightness open new terminal and type brightnessdown
NOTE:
This build maybe very annoying for some people.... It does not include the normal Lubuntu things.. It also does not include Firefox or VLC by default (to save space).. It has just about nothing // People who want a full desktop can wait until I build a full Lubuntu ones with drivers next week sometime
Also usb needs to be manually mounted..
All the above can be installed by using your normally apt-get install firefox vlc ..etc!
Some images:
HDMI with TV
What is included
See now it works with a TV
Youtube of video playback:
https://www.youtube.com/watch?v=muV0uK29S2o
Download:
TF101-LXDE-small-Tegra.tar.gz
MD5:
70b5eea5ca1de582c0ef2ba736b1e679 TF101-LXDE-small-Tegra.tar.gz
No Mirror yet!
Plain 12.04.4 LTS ::: Ubuntu armhf
Ok Boys and girls.. Here is the base 12.04.4 with all updates done to it..
Its on a Ubuntu Unity desktop.. What is slow as ****, and laggy and crashy.. It has crashed and restarted on my twice so far for me while
It has all the keybinds done to it and it auto logins in.. The dock is buggy and will need to be undocked and redocked a few times to get the keyboard / touchpad working
sound, touchpad, multitouch, etc working
This build has all the fixes as 14.04 v1.1 But without the power switch fix.. If you want that please see this post:
Post-15
No nvidia drivers installed.. Please fell free to break it your self
Downloads:
Main Mirror:
tf101-12.04.4-Ubuntu-armhf.tar.gz
Dropbox.. Lets get my account deleted!
tf101-12.04.4-Ubuntu-armhf.tar.gz
Size: 911MB
Hash: MD5: 3871787e0b34a6d20fef9d9ef7b0fe2e
---------------------
What's new in v1.1 ::: Xubuntu armhf
Newest bleeding edge updates from Ubuntu launchpad + new Firefox + lightdm (ugly yellow slash on start)
Keybinds setup for: WiFi off on, touchpad off on, brightness controls up down, start Firefox, start terminal, screenshot
:::::Hold "shift" and press the key you desire .. Ie touchpad button a long the top. :::::
note this will only work currently in the Xubuntu session (default) will not work in xfce or openbox.
Plus black screen on fix - with hack from post #15
New panel shortcut for XDA Developers tf101 forum.. For easy troubleshooting help
New performance monitor on the right: CPU, memory, disk access
Hidden Bluetooth icon and power while on charge
Fixed / hidden mount errors on / when booting up post #53
Now includes all modules for all versions of rootbind kernels
Some apps package cleanup
Fixed panel dots for spacer
Fixed some autoload apps
Turned off power settings for suspend
Turned off screensaver
What's not working:
Bluetooth
HDMI
Camera
GPS
Extra USB adaptors ie: USB Ethernet
Volume for system and volume rockers
... Sound does work but only in some apps
Graphics drivers opengl - no support yet?
If you know of more bugs let me know.. I will see about what I can do to fix it.. or hack away at it ^_^
----
system will take a while to start
First login -firefox will take a bit to open
You may have two errors about libc.. this is fine, they don't come back second reboot..
Unpacking takes 38mins in Android.. It can cause the screen to go black and not come back when its unpacking.. Just leave it!! If you really want to see what its doing set the timeout to none or undock re dock and press the power button..
Downloads
Main mirror
tf101-14.04-xubuntu-armhf-1.1.tar.gz
Dead mirror:
Mirror (Dropbox) : tf101-14.04-xubuntu-armhf-1.1.tar.gz
2nd Mirror Goo.im tf101-14.04-xubuntu-armhf-1.1.tar.gz
Thanks to @x3maniac for the mirror
Size: 863 MB (a little bit smaller then before) But unpacks just as big....
MD5: a0371274e0e28e5b623ca6282d52883e
Thanks to everyone who is posting with bugs etc.. I hope to make your life and mine easier with his new image.. Less work more play !!
Current download stats:
40+ As of last edit
-------------------------- OLD Details from post ONE... ------------------------------------------------
This is a 14.04 build with xubuntu installed (see screeny)
This is a armhf build.. Much faster then armel
:::::: FYI this is for @jrohwer kernel on post 3 - rootbind
3.1.10-12 oc
http://forum.xda-developers.com/attachment.php?attachmentid=2379482&d=1383923374
Please see his thread here: http://forum.xda-developers.com/showthread.php?t=2347581
Go and thank him for making this kernel!
:::::::
DOWNLOAD HERE!! -- This is the old 1.0 Build.. see below for 1.1
Mirrors to come soon!
tf101-14.04-xubuntu-armhf.tar.gz
Mirror dead.. Thanks dropbox!
Mirror - Dropbox tf101-14.04-xubuntu-armhf.tar.gz
md5 hash:
cbc9177f656a7e58cae53ff00fa33d7a
(you can use Ez File Explorer to test the hash - Android, or md5sum under Linux)
867.56 MB download
Unpacks to 2.4gb on disk (Likely there is more cleaning I can do to move not needed files to make it smaller)
What is says on the box
Includes everything so you can point and shoot
Working fine::
-modules,WiFi,touchpad,touchegg,sound etc..
Ok here we go:
User: tf101
Password is: ubuntu
-please change this for your own piece of mind
HOW TO:
In Android..
Rename your current linuxroot if you have one using mv
Download and unpack into /data/linuxroot
Comannds:
Code:
su
busybox mount -o remount,rw /
--Rename old Linuxroot
mv /data/linuxroot /data/linuxroot-old
mkdir /data/linuxroot
chmod 755 /data/linuxroot
cd /data/linuxroot
tar -pxvzf /pathto/tf101-14.04-xubuntu-armhf.tar.gz
busybox mount -o remount,ro /
(This will take bloody ages maybe 40mins+ ... Go have a few coffees) - its faster if your going from micro SD
Reboot and you should be away
If you have any issues just delete /data/linuxroot and mv your old one back
The first time it maybe a bit slow to get going... Just wait... You maybe need to start without dock attached
-second boot should be better..
Problems:
Mine always loads with root file system needs to be checked.. Can get past it by pressing i ... I tried scanning it with the tools in this thread.. But no love for me.. I tired also formatting /data still coming up
As this is a 14.04 build it can't include the nvidia drivers.. So that's not so fun... I am planning to build a 12.04.4 one soon ... Maybe someone has a solution ? Last time I tried to get it working I had to reinstall
Also HDMI does not work.. I am guessing because the nvidia drivers are not installed..
Brightness buttons.. See post 41 - for a hack
Its in the Australia time zone use this to fix for you:
sudo dpkg --configure tzdata
Maybe Audio maybe not work in some apps... I tired to fix up pulseaudio .. By removing it... Anyway audio is working for me with mplayer -ao alsa something.wav
your may need to run alsamixer and enable speaker (3rd tab along) press M to enable it
Performance notice while using firefox chrome etc.. Using ABP helps speed uploading time for pages and helps using pages... Otherwise your loading flashy, gifs other useless things that slow down your TAB
Workaround for the below:
Screen saver turns screen off - This is very annoying -- You can turn off the screen saver or wait for me to fix it
If it goes black and you can turn it back on do this: Pressing power button first (screen will go a little bright).... Then ctrl + alt (search) then f1 (the second key along the top) .. Then alt+ Ctrl and f7 -- And then screen will be back........
see page 2 post 1 for fix for this http://forum.xda-developers.com/showpost.php?p=50399357&postcount=1
I have some code I am working on to get the power bind to do what we just did - will have a fix that can be easily applied
If anyone wants to have a look:
https://github.com/djdill/TF101/tree/hotkeys
... Yes I know I am not using git right
Super thanks to:
@jrohwer - for making / hacking together this kernel.. That makes this all possible
@Sni - kernel patches
@x3maniac - for getting me my first tf101 Linux based Roms and support
Current download stats:
102 As of last edit
http://forum.xda-developers.com/attachment.php?attachmentid=2735900&stc=1&d=1399720601
Nice I think you can rename your thread to be more general and add more img ? What do you think ?
( I mean like a img repository for rootbind kernel )
I'll try to do a img with different DE and things.
Thanks for your work anyway, really appreciated !
BTW, x3maniac, if you read this, glad to see you again around here
For our discussion about 13.10 and 12.04, I think I'll make a 13.10 then, like this we got plenty of choice Nvidia driver are supported until 13.10, and not supported anymore since 14.04
"Envoyé depuis mon Transformer TF101 avec Tapatalk"
Kingzak34 said:
Nice I think you can rename your thread to be more general and add more img ? What do you think ?
( I mean like a img repository for rootbind kernel )
I'll try to do a img with different DE and things.
Thanks for your work anyway, really appreciated !
BTW, x3maniac, if you read this, glad to see you again around here
For our discussion about 13.10 and 12.04, I think I'll make a 13.10 then, like this we got plenty of choice Nvidia driver are supported until 13.10, and not supported anymore since 14.04
"Envoyé depuis mon Transformer TF101 avec Tapatalk"
Click to expand...
Click to collapse
@Kingzak34 Good idea! .. OK so I have renamed it now.. let me know what you think.. If you can thank of a better name.. Just paste it and I will change it
OK didn't know about the support up until 13.10.. I was never able to get it to work past 12.10.. Maybe I am doing something wrong.. I was looking and your thread about installing the drivers.. Or is it better just to do it via the software centre?
Somehow I magically fixed the libgl.... Its even fixed in the tar.gz that I uploaded .... Don't know how I did that.. But now I can run Midori (browser).. Faster then FF on the tablets and lighter
I am going to be building more from Monday.. I want to get more fixed with this image (I think it can start quicker and fix some of the errors in syslog)
And I want to fully remove pulseaudio and get ALSA working by default .. Currently in the img.. Audioapps are trying to load to pulseaudio... Even when its full removed.... NFI why that is happening.. anyway more fun time fixing
Oh and the screen fixes for idle .. never turn the screen off correctly
re x3maniac he PMed me a few times today! He working on a another kernel ... But he does not have much free time so its likely going to be a long process .. Anyway this kernal appears to be working fine for me..
DjDill said:
@Kingzak34 Good idea! .. OK so I have renamed it now.. let me know what you think.. If you can thank of a better name.. Just paste it and I will change it
OK didn't know about the support up until 13.10.. I was never able to get it to work past 12.10.. Maybe I am doing something wrong.. I was looking and your thread about installing the drivers.. Or is it better just to do it via the software centre?
Somehow I magically fixed the libgl.... Its even fixed in the tar.gz that I uploaded .... Don't know how I did that.. But now I can run Midori (browser).. Faster then FF on the tablets and lighter
I am going to be building more from Monday.. I want to get more fixed with this image (I think it can start quicker and fix some of the errors in syslog)
And I want to fully remove pulseaudio and get ALSA working by default .. Currently in the img.. Audioapps are trying to load to pulseaudio... Even when its full removed.... NFI why that is happening.. anyway more fun time fixing
Oh and the screen fixes for idle .. never turn the screen off correctly
re x3maniac he PMed me a few times today! He working on a another kernel ... But he does not have much free time so its likely going to be a long process .. Anyway this kernal appears to be working fine for me..
Click to expand...
Click to collapse
For 13.10, the better way to get nvidia driver is through software center I think. But you maybe right, maybe 12.04 as LTS version can be better, I'll try too.
Anyway, thanks for your work, I'll try to do some too, when I'll got more free time
Kingzak34 said:
For 13.10, the better way to get nvidia driver is through software center I think. But you maybe right, maybe 12.04 as LTS version can be better, I'll try too.
Anyway, thanks for your work, I'll try to do some too, when I'll got more free time
Click to expand...
Click to collapse
14.04 is the next LTS =(
Sent from my SCH-I535 using Tapatalk
zachf714 said:
14.04 is the next LTS =(
Sent from my SCH-I535 using Tapatalk
Click to expand...
Click to collapse
For whatever reason I could not get the 12.04 core to upgrade to 12.04.4 .. My next plan to to use the pre installed desktop image and roll the 12.04.4 over the top and see how much it breaks .... Then it will be current LTS with support for a little while longer.... If they fixed (didn't drop nivida support) in 14.04 it would be perfect
Sent from my GT-I9305 using xda app-developers app
DjDill said:
For whatever reason I could not get the 12.04 core to upgrade to 12.04.4 .. My next plan to to use the pre installed desktop image and roll the 12.04.4 over the top and see how much it breaks .... Then it will be current LTS with support for a little while longer.... If they fixed (didn't drop nivida support) in 14.04 it would be perfect
Sent from my GT-I9305 using xda app-developers app
Click to expand...
Click to collapse
really 14.04 seems great right now, the only thing I have seen is that when the display shuts off (not really of just goes black) I cant wake it back up but what ever I will figure it out
zachf714 said:
really 14.04 seems great right now, the only thing I have seen is that when the display shuts off (not really of just goes black) I cant wake it back up but what ever I will figure it out
Click to expand...
Click to collapse
Yeah I was looking at a fix for that last night... Anyway you can get around it by pressing power button first.... Then alt + Ctrl f1 (the second key along the top) .. Then alt+ Ctrl and f7
Sent from my GT-I9305 using xda app-developers app
You are sure we can not install the nvidia drivers ? I know @jrohwer had them on 13.04
edit - oh yea KP loloolololol
zachf714 said:
You are sure we can not install the nvidia drivers ? I know @jrohwer had them on 13.04
edit - oh yea KP loloolololol
Click to expand...
Click to collapse
The ability to install nvidia drivers depends on whether nvidia will release the appropriate versions. It depends on the Xorg video abi, which has to match the version that is installed on your system. (Ubuntu 13.10 is abi-14, 14.04 is abi-15). Abi-14 has been released so there is an nvidia-tegra package in Ubuntu 13.10. It remains to be seen whether nvidia will release the abi-15 driver for ventana (tegra2 cpus). Even if Ubuntu does not provide the package you can still download the driver from Nvidia directly and install it yourself.
https://developer.nvidia.com/linux-tegra-rel-16
(Read at the bottom - Additional software).
I would revisit this page once 14.04 has been "officially released" and if nvidia provides the binary driver for abi-15 then that should be no problem.
I don't think they will as stated in 16.3 changelog ventana driver will not be updated in future release
R16.3
Bluetooth Keyboard and Mouse Support
U-Boot is officially supported
This is the final release supporting Ventana. T20 support will not be included in future releases.
Tapatalké avec mon Nexus 4 MIUI !
Kingzak34 said:
I don't think they will as stated in 16.3 changelog ventana driver will not be updated in future release
R16.3
Bluetooth Keyboard and Mouse Support
U-Boot is officially supported
This is the final release supporting Ventana. T20 support will not be included in future releases.
Tapatalké avec mon Nexus 4 MIUI !
Click to expand...
Click to collapse
Sure, but they have updated the abi-14 support for 16.3 after its release (see Additional Software), this is not a new release of the drivers, it is just providing updated xorg abi support. So that may well happen for abi-15 as well.
jrohwer said:
Sure, but they have updated the abi-14 support for 16.3 after its release (see Additional Software), this is not a new release of the drivers, it is just providing updated xorg abi support. So that may well happen for abi-15 as well.
Click to expand...
Click to collapse
OK ! I didn't get that
Tapatalké avec mon Nexus 4 MIUI !
Black screen hack
...After lots of googling and head banging I managed to get a fix for the black screen... Its a hell of a hack.. But for now I am running with it..
So what is happening when the screen goes black is the keyboard and touchpad stop responding (don't think I can fix that)
So we use the power button soft press to get the screen back, but it still stays black... (little bit of brightness can be seen after pressing) - After that the keyboard and touchpad work.. OK good... so then we use ALT CTRL F1 then back to F7.. yah back to it.. But thats too much pressing in my mind.. So I have got this below commands to so that work..
Some other background to this.. Lubuntu and use another config to bind commands so its a little easier but Xubuntu uses xfce what is harder
SO you don't have to wait for your screensaver you can use this to test:
xset dpms force off
---Steps
sudo apt-get install xbinekeys
xbindkeys --defaults > /home/tf101/.xbindkeysrc
vim /home/tf101/.xbindkeysrc
Add the below to the file just below line 51 or just below this: control + b:2
Code:
# turn screen back on agian
"/usr/bin/turnscreenon"
m:0x0 + c:124
Then:
sudo vim /usr/bin/turnscreenon
Code:
echo "ubuntu" | sudo -S chvt 1
wait 1190
echo "ubuntu" | sudo -S chvt 7
sudo chmod a+x /usr/bin/turnscreenon
I also needed to remove all the commands on line 124 in this file and log out and back in
vim .Xmodmap
-----
There must be a better way of doing this.. As this requires your user password ... to run SUDO..
I sure there is a clean way of getting around the blackscreen bug.. But I can't get it fixed with my skill set so this workaround I am sticking with for now...
I'm just starting trying your IMG, will give you some feedback when I can
jrohwer said:
The ability to install nvidia drivers depends on whether nvidia will release the appropriate versions. It depends on the Xorg video abi, which has to match the version that is installed on your system. (Ubuntu 13.10 is abi-14, 14.04 is abi-15). Abi-14 has been released so there is an nvidia-tegra package in Ubuntu 13.10. It remains to be seen whether nvidia will release the abi-15 driver for ventana (tegra2 cpus). Even if Ubuntu does not provide the package you can still download the driver from Nvidia directly and install it yourself.
https://developer.nvidia.com/linux-tegra-rel-16
(Read at the bottom - Additional software).
I would revisit this page once 14.04 has been "officially released" and if nvidia provides the binary driver for abi-15 then that should be no problem.
Click to expand...
Click to collapse
It appears that ubuntu tired doing this already from what I can see..
https://launchpad.net/ubuntu/trusty/.../16.3-0ubuntu2
reports that the package was removed as of: 2014-02-05.
Deleted on 2014-02-05 by Sebastien Bacher
doesn't work with new xorg abis, requested by mlankhorst
The ABI version for 14.04 is abi15 what means the debs are missing for the install.. I have forced installed packages like this in the past and it fails to start xorg after
This package should work for everything apart from 14.04
@MiniBlu for the info! (he can't post here yet)
I had word that Nvidia will stop dev on anything older then E3 for linux
@Kingzak34 Let me know how you go! .. The blackscreen bug was really eating away at me .. But now I have at least a workaround I am much happier
DjDill said:
It appears that ubuntu tired doing this already from what I can see..
https://launchpad.net/ubuntu/trusty/.../16.3-0ubuntu2
reports that the package was removed as of: 2014-02-05.
Deleted on 2014-02-05 by Sebastien Bacher
doesn't work with new xorg abis, requested by mlankhorst
The ABI version for 14.04 is abi15 what means the debs are missing for the install.. I have forced installed packages like this in the past and it fails to start xorg after
This package should work for everything apart from 14.04
Click to expand...
Click to collapse
The abi15 drivers have also not yet been released for the latest Linux for Tegra R17.1 from Nvidia (which only supports Tegra4 devices). So I would not write this off completely yet. If they release them for 17.1 but not for 16.3 then that would be the final nail in the coffin I guess...
https://developer.nvidia.com/linux-tegra-rel-17
DjDill said:
It appears that ubuntu tired doing this already from what I can see..
https://launchpad.net/ubuntu/trusty/.../16.3-0ubuntu2
reports that the package was removed as of: 2014-02-05.
Deleted on 2014-02-05 by Sebastien Bacher
doesn't work with new xorg abis, requested by mlankhorst
The ABI version for 14.04 is abi15 what means the debs are missing for the install.. I have forced installed packages like this in the past and it fails to start xorg after
This package should work for everything apart from 14.04
@MiniBlu for the info! (he can't post here yet)
I had word that Nvidia will stop dev on anything older then E3 for linux
@Kingzak34 Let me know how you go! .. The blackscreen bug was really eating away at me .. But now I have at least a workaround I am much happier
Click to expand...
Click to collapse
It's working great so far, no problem found yet, I didnt have time to test everything, but it's stable and fast, my printer didnt need to be added or anything, so far so good
Just now that i got my new TF700T?
Hahahha. Seems my TF101 will have to stay around for a little longer

[NON-ANDROID]Native Linux thread for A8/A8+ (Arch Linux ARM, postmarketOS, ect.)

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

Categories

Resources