5,597,501 Members 31,038 Now Online
XDA Developers Android and Mobile Development Forum

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

Tip us?
 
rabits
Old
(Last edited by rabits; 30th July 2013 at 07:41 PM.)
#1  
Senior Member - OP
Thanks Meter 430
Posts: 184
Join Date: Nov 2012
Location: St.Petersburg

 
DONATE TO ME
Prompt [DEV] Multiboot Linux on Infinity tf700 (project closed)

Developers thread for users general.

I will post here some external links and additional information.

GitHub tf700 Repository - place for config files and step-by-step manual to create you own kernel and rootfs
GOO.IM file place
Tablet PPA for Raring

Changed packages is placed in /root/deb directory.

Known problems: (nexus7 wiki, mattfischer blog post, nexus7 bugs)
  • Unity has some problems with performance and ram eating - this is place for optimizations.
  • In-device microSD really bad works.
  • WiFi disabling is fail bcmdhd kernel module.
  • vt1-only, if you try to switch to vt* (`chvt 2`) - your device is freezes and reboot.
  • To use unity you need nux-tools, libnux-3.8-0 and libnux-3.8-common with version 3.8.0-0ubuntu1nexus7.1 (this packages are hold)
  • Sometimes I can see really bad artifacts with fonts and background on the device screen (mostly if using chromium browser). Only reboot fixes it.

Progress list:
  • Test Linux boot {DONE}
  • SDCard rootfs {DONE}
  • Graphical boot{DONE}
  • Keyboard special keys remapping (Esc, F1-12, Ins, Print, Break, Del, Home->Alt, Search->Meta4) {DONE in 0.8.0}
  • WiFi {DONE}
  • OpenGL ES {DONE}
  • Audio {DONE} In pavucontrol as output device selected Analog Stereo Output, in alsamixer (tegra-codec) unmute IntSpk
  • Video up to 1080p {DONE} (ac100 info) - Soft audio requires gstreamer0.10-plugins-*
    • nvgstplayer --sas="audioconvert ! pulsesink" -i <videofile> - Fullscreen mode
    • nvgstplayer --svs="nvxvimagesink" --sas="audioconvert ! pulsesink" -i <videofile> - Window mode
  • Touchscreen {DONE in 0.7.0} - used mtev one-touch driver 0.1.13 with api and 2button patches - right click by push one finger and click by second finger (thanx, cb22)
  • Touchpad {DONE in 0.6.1}
    • 2 fingers scrolling {DONE}
    • 3rd mouse button by 2 finger tap {DONE 0.6.1} - created new version of package multitouch "-swaptaps"
  • Updated tegra3 drivers and codecs to 16.2 {DONE in 0.6.1}
  • Ubuntu/Android dualboot {DONE in 0.7.0}
    • Initrd bootloader trying to boot sda1(dock sd cardreader or usb device), mmcblk1p1(internal microsd cardreader), sdb1 (dock sd cardreader or usb device), mmcblk0p9(inernal device), /data/media/tf700-rootfs-linux.img(in-device installed virtual disk) (0.7.0)
    • If it can't load linux - fallback to Android (0.7.0)
    • Boot android if voldown (or special, like Up key) key pressed in menu (0.7.0)
    • Fixed nvavp problem in android (0.7.0)
    • Fixed problems with Android sleeping by unbinding vtconsole before Android boot (0.7.0)
  • Initrd installer to mmcblk0p8 user partition and mount as loop with binding mmcblk0p8 {DONE in 0.7.0}
  • Fonts and cursor size {DONE in 0.8.0}
  • ZIP installer by Aroma {partially}
    • Install of boot image {DONE in 0.7.1}
    • Install script for SDcard-way and Virtual Disk-way {DONE in 0.8.0}
    • Possibility of using mmcblk0p8 /data as /home {DONE in 0.8.0}
    • Dynamical making of boot.blob {DONE in 0.8.1}
    • Select rootfs to boot {DONE in 0.8.1}
    • CM10.1 initrd (link) {DONE in 0.8.1}
    • Android boot from sdcard or virtual drive {DONE in 0.8.1}
    • UbuntuTouch initrd {DONE in 0.8.2}
    • Change boot system names {DONE in 0.8.2}
    • Add option to boot android by default {DONE in 0.8.2}
    • Check md5 of rootfs archive
    • Encryption for linux partition
  • FSCK check & fix rootfs before mounting {DONE in 0.8.2}
  • GPIO keys {partially in 0.8.0}
  • Switch rootfs to 13.4 (link) {partially}
  • Bluetooth
    Try this: /system/bin/brcm_patchram_plus --bd_addr `cat /etc/bluetooth/bt_addr` --enable_hci --enable_lpm --no2bytes --tosleep 50000 --baudrate 4000000 --use_baudrate_for_download --patchram /lib/firmware/bcm4334.hcd --i2s=1,0,0,0 /dev/ttySAC0&
  • Totem and nvgst modules
  • Go to Wayland+Weston+libhybris to use egl android drivers
  • Disable speaker if headphones connected

Additional:
Need help:
  • Suspend to RAM - Not working with X (trace), without X (stop lightdm) - suspended, but not wake.
    1. Wakelock to emmc
    2. 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.
The Following 63 Users Say Thank You to rabits For This Useful Post: [ Click to Expand ]
 
ostar2
Old
#2  
ostar2's Avatar
Senior Member
Thanks Meter 21
Posts: 142
Join Date: Nov 2012
This is very nice! Its certainly a good start.
 
quicknik
Old
#3  
Member
Thanks Meter 11
Posts: 30
Join Date: Jul 2012
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
The Following 2 Users Say Thank You to quicknik For This Useful Post: [ Click to Expand ]
 
rabits
Old
#4  
Senior Member - OP
Thanks Meter 430
Posts: 184
Join Date: Nov 2012
Location: St.Petersburg

 
DONATE TO ME
Quote:
Originally Posted by quicknik View Post
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"
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...

Quote:
Originally Posted by quicknik View Post
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.
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.

Quote:
Originally Posted by quicknik View Post
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.
Applying to tf300 - is good idea. It's a part of integration all tegra3 devices in same Ubuntu installation for pads.
The Following 3 Users Say Thank You to rabits For This Useful Post: [ Click to Expand ]
 
rabits
Old
#5  
Senior Member - OP
Thanks Meter 430
Posts: 184
Join Date: Nov 2012
Location: St.Petersburg

 
DONATE TO ME
Sorry, guys. I found my mistake with no-dualboot initrd. Now i replaced it to true dualboot (0.6.1).
The Following 3 Users Say Thank You to rabits For This Useful Post: [ Click to Expand ]
 
singoutout
Old
#6  
Senior Member
Thanks Meter 16
Posts: 149
Join Date: Sep 2011
Quote:
Originally Posted by rabits View Post
Developers thread for users general.

Test builds:[LIST][*]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.[LIST][*]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.
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 !!!
 
rabits
Old
#7  
Senior Member - OP
Thanks Meter 430
Posts: 184
Join Date: Nov 2012
Location: St.Petersburg

 
DONATE TO ME
Quote:
Originally Posted by singoutout View Post
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 !!!
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.
The Following 2 Users Say Thank You to rabits For This Useful Post: [ Click to Expand ]
 
tailormoon
Old
#8  
tailormoon's Avatar
Senior Member
Thanks Meter 27
Posts: 133
Join Date: Jul 2009
Quote:
Originally Posted by rabits View Post
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.
can do for TF300 ?
The Following User Says Thank You to tailormoon For This Useful Post: [ Click to Expand ]
 
rabits
Old
#9  
Senior Member - OP
Thanks Meter 430
Posts: 184
Join Date: Nov 2012
Location: St.Petersburg

 
DONATE TO ME
Quote:
Originally Posted by tailormoon View Post
can do for TF300 ?
I don't know - but you can try.
The Following 2 Users Say Thank You to rabits For This Useful Post: [ Click to Expand ]
 
singoutout
Old
#10  
Senior Member
Thanks Meter 16
Posts: 149
Join Date: Sep 2011
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

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes