Booting Ubuntu on the O2X - LG Optimus 2x

I've spent some (much) time this week with trying to get ubuntu running on the optimus 2x. I have succeeded to boot and get the wifi, X11 and the touch screen sort-of working.
The ramdisk is completely replaced with a busybox executable, some symlinks to it and a shell script that mounts the necessary stuff (/dev/block/mmcblk1p2 as ext3), changes root directory and calls /sbin/init.
USING THE FOLLOWING WILL VOID ANY WARRANTY YOU MIGHT HAVE LEFT AND MIGHT ALSO BRICK YOUR PHONE!
Seriously, don't do this if you don't wish to risk the data on your phone.
I will be providing some demo images for people who don't have a build environment up and running. These images will not work particularly well, don't get your hopes up .
If you want to have a big linux installation (more than 3 GB) you can flash the images to the second partition on your external sd (obviously you have to create this yourself first). You can use the following boot image (which assumes that linux is on /dev/block/mmcblk1p2 with ext3:
https://ha.xxor.net/o2x/boot-20110813.img
I have also targzipped the modifications to the file system that were required to get stuff going here:
https://ha.xxor.net/o2x/o2x-20110813.tar.gz
This should be extracted directly to the root file system.
The kernel source code is up at https://github.com/ergoen/LG-Optimus-2x-linux-kernel
Things that have been done to get this to "work":
1. Boot partition
Apart from grabbing the busybox stuff from some nexus one boot image (I'm sorry whoever fixed it, I don't remember where I got it from ) the boot command line had to be modified a bit, changing stuff from the default usually ends up in a phone that won't boot, but I discovered that it's possible to append new arguments to the default ones. So the following have been appended:
console=tty0 root=/dev/mmcblk1p2 init=/sbin/init
The console=tty0 makes sure that you see stuff on the screen while ubuntu get's running. The last two are not necessary to boot, but ubuntu seem to like (need?) them (or at least the init=/sbin/init), since otherwise you never get to the login prompt on the screen.
2. The Ubuntu installation
To make it possible to communicate with the phone at all adbd was put into the /sbin/ folder and a symlink was created /system/ -> /. Also the "/sbin/adbd recovery &" command was added to rc.local to make it autostart.
2.1. Modules and wifi
We need the /lib/modules/2.6.32.9 directory. Most files inside that were generated using the "depmod" command, the exception is wireless.ko which was taken from android, the firmware and nvram files needed for the wifi chip to work were placed in the /lib/firmware/wl/ folder. To make the wifi module autoload with the proper firmware "wireless" was added to /etc/modules and the file /etc/modprobe.d/wireless.conf was created with the contents describing the location of the firmware and nvram.
To make the wifi autoconnect on boot the /etc/network/interfaces file was modified with the following contents:
auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
(To make the wifi autoconnect to your wireless you need to run the command "wpa_passphrase networkname networkpassword > /etc/wpa_supplicant.conf using adb or chroot)
2.2. X11
Getting X up by running xinit produces a simple black screen on the phone. At first I thought the problem was that the refresh rate was set to 106 Hz, indeed changing it with xrandr and pushing a new mode got me a visible xterm on Kubuntu 11.04:
https://ha.xxor.net/o2x/xterm.jpg.
On Ubuntu 10.10 it even gave me a nice colored gdm screen:
https://ha.xxor.net/o2x/gdm.jpg
But the image I got there was static and wasn't being updated. Turns out the reason the screen was black earlier with the 106 Hz rate and the reason why the screen is now just showing an image is that the framebuffer device doesn't update the screen like it should..
By modifying the kernel source to redraw the screen every 50 ms (~20 Hz) it's possible to get a scren that works. This is an ugly hack in the tegra-fb driver though, so I'm open for suggestions on how to solve it in a better way!
2.3. Touchscreen
By default the only thing the touchscreen does is force the mouse up in the left corner, I think this is due to some multitouch thing. Some more kernel hacking (basically half-disabling multitouch) makes the touchscreen work.
Pictures:
https://ha.xxor.net/o2x/SAM_0671.jpg
https://ha.xxor.net/o2x/SAM_0672.jpg
Video:
http://vimeo.com/27662093
Thans to RaYmAn and lilstevie on #tegralinux for all their help this far!
3. Misc
(K)Ubuntu 11.04 uses a new version of libc which crashes with the current nvidia kernel (2.6.32.9) on this hardware (http://developer.nvidia.com/tegra/forum/errata-657451-tls-bit-20-cp15-c13-3), so I'm going back to Ubuntu 10.10 until someone ports a newer kernel to the Optimus 2x or this problem can be solved in another way.
edit 1: Ubuntu 10.10 with much more working X11 noted in section 2.2.1.
edit 2: X11 working even more, touchscreen works aswell!
edit 3: Landscape mode works with both X11 and the touchscreen now, getting ready for alpha 1!

Current status:
Working:
- adb (best way of controlling device currently)
- X11 (only framebuffer with hardcoded refresh rate of ~20Hz)
- landscape mode fixed! =D
- touchscreen (probably only single touch)
- wifi (only when running things from console, ubuntus network manager does not recognize it)
Not working:
- Basically everything else
Alpha 1:
EDIT: Seems that multiupload has screwed up and this link was going to some crap, anyway this is not relevant anymore
Username 'ubuntu', password 'ubuntuxda'. Don't use this if you don't know how to restore the boot partition! (Or else you won't be able to boot back into android!)
Experiments:
Tried disabling the CONFIG_TEGRA_ERRATA_657451 switch in the kernel to make newer linux versions boot. This might be a bad idea in the long run, but this far things are working better than with the switch enabled..

I tried Ubuntu via chroot method posted in other thread, but I'm a noob.. Can you please explain what is different about your ubuntu?? Does it boot without Android and doesn't need VNC stuff?

Yes, it boots instead of android when turning on the phone, but it doesn't work completely, so I mostly put it up here so that people could help test and fix/hack things.

You rock! Unfortunately I'm no dev, so can't help but hopefully others will, so we'll get a fully working linux on our phone, and maybe later even meego. Is there btw drivers for the gpu? Because hdmi, with usb host ofc, would be really useful!
Anyway, good job, really!

This looks great ergoen! I'm no dev either but I can't wait until it's available to everyone, I would love to have Ubuntu running on my O2x.
Best of luck!

gpu drivers are closed source, and the ones released by nvidia require a newer kernel (2.6.38), so thats not really possible yet.
Newer kernel will be necessary anyway though, since the crashes I'm getting seems to be due to a bug in tegra which gets worked around in 2.6.36. I'm not skilled enough to perform that port though. I will of course give it a try, but most likely I'll go for some older version of ubuntu and/or perhaps meego instead.

Håller med tidigare poster. Would be awesome with native Ubuntu and Meego on the phone... keep up the good work, can't wait to follow this development.
Sent from my Optimus 2X using XDA Premium App

ergoen said:
... I realized that it tried to run the screen at [email protected], which is hmm, wrong . So setting up a script at /etc/xprofile, which makes sure the refresh rate is 60Hz...
Click to expand...
Click to collapse
What would happen if you changed this to 72Hz instead? I saw that info when I was browsing System Information in some app. Im not a dev At. All. But tell me what you think it's probably a stupid question
Sent from my Optimus 2X using XDA Premium App

I can give it a try later, not that it would make any difference .
edit: 72 Hz also seems to work, cool, that's higher refresh rate than my computer screen...

ergoen said:
I've spent some (much) time this week with trying to get ubuntu running on the optimus 2x. I have succeeded to boot and get the wifi working, also X sort-of works (software fb). I have only slightly modified the kernel (built with CONFIG_SIGNALFD=y so that Meego wont complain in a related attempt to get that os booting). The ramdisk is completely replaced with a busybox executable, some symlinks to it and a shell script that mounts the necessary stuff (/dev/block/mmcblk1p2 as ext3), changes root directory and calls /sbin/init.
USING THE FOLLOWING WILL VOID ANY WARRANTY YOU MIGHT HAVE LEFT AND MIGHT ALSO BRICK YOUR PHONE!
Seriously, don't do this if you don't wish to risk the data on your phone.
I will not provide a complete root file system for two reasons:
1. It's pretty easy to make yourself, grab the omap3 kubuntu mobile image from the kubuntu site, or use rootstock from an ubuntu installation to build one yourself.
2. My upload sucks, and putting several hundred MB onto the interwebz would hurt me.
However, I have placed an image of my boot partition here (assumes you've got ubuntu on the second partition of the external memory card formatted with ext3):
https://ha.xxor.net/o2x/boot.img
I have also targzipeed the modifications to the file system that were required to get stuff going here:
https://ha.xxor.net/o2x/o2x.tar.gz
This should be extracted directly to the root file system you aquired earlier.
Things that have been done to get this to "work":
1. Boot partition
Apart from grabbing the busybox stuff from some nexus one boot image (I'm sorry whoever fixed it, I don't remember where I got it from ) the boot command line had to be modified a bit, changing stuff from the default usually ends up in a phone that won't boot, but I discovered that it's possible to append new arguments to the default ones. So the following have been appended:
console=tty0 root=/dev/mmcblk1p2 init=/sbin/init
The console=tty0 makes sure that you see stuff on the screen while ubuntu get's running. The last two are not necessary to boot, but ubuntu seem to like (need?) them (or at least the init=/sbin/init), since otherwise you never get to the login prompt on the screen.
2. The Ubuntu installation
To make it possible to communicate with the phone at all adbd was put into the /sbin/ folder and a symlink was created /system/ -> /. Also the "/sbin/adbdb recovery &" command was added to rc.local to make it autostart.
2.1. Modules and wifi
We need the /lib/modules/2.6.32.9 directory. Most files inside that were generated using the "depmod" command, the exception is wireless.ko which was taken from android, the firmware and nvram files needed for the wifi chip to work were placed in the /lib/firmware/wl/ folder. To make the wifi module autoload with the proper firmware "wireless" was added to /etc/modules and the file /etc/modprobe.d/wireless.conf was created with the contents describing the location of the firmware and nvram.
To make the wifi autoconnect on boot the /etc/network/interfaces file was modified with the following contents:
auto wlan0
iface wlan0 inet dhcp
wpa-driver wext
wpa-conf /etc/wpa_supplicant.conf
(To make the wifi autoconnect to your wireless you need to run the command "wpa_passphrase networkname networkpassword > /etc/wpa_supplicant.conf using adb or chroot)
2.2. X11
Getting X up by running xinit produces a simple black screen on the phone. After some troubleshooting and voodoo magic I realized that it tried to run the screen at [email protected], which is hmm, wrong . So setting up a script at /etc/xprofile, which makes sure the refresh rate is 60Hz, and running it after xinit gets you a xterm!!!
https://ha.xxor.net/o2x/xterm.jpg
Telling /etc/X11/xinit/xinitrc to run it makes sure that it gets set up properly by the startx script, unfortunately startx doesn't go through for me on kubuntu because of some weird error caused by a hardware problem in tegra: (http://developer.nvidia.com/tegra/forum/errata-657451-tls-bit-20-cp15-c13-3).
Unfortunately this (probably) means that either we'll have to stay with old versions of libc or get a newer kernel (2.6.36 contains fix). Old libc seems backwards, but porting a new kernel requires a bit more skill than I possess.
2.2.1. Ubuntu 10.10
Grabbed the image ubuntu-netbook-10.10-preinstalled-netbook-armel+omap.img.gz from http://cdimage.ubuntu.com/ubuntu-netbook/ports/releases/maverick/release/ . After first unpacking the tgz, then unpacking the raw disk image to partition images (with 7zip on windows) and then flashing the 1.img file to the second partition on my sdcard I managed to run a much more bug free ubuntu than before.
Ubuntu 10.10 (Maverick) uses an older version of som libraries that don't crash with the old o2x kernel.
This has lead to the following:
https://ha.xxor.net/o2x/gdm.jpg
Obviously touch screen isn't working properly (pressing it puts the pointer into the upper left corner :S) so can't get further than this currently.
3. Misc
avahi-daemon and cups seems to be crashing all the time and restarting, so removing them (apt-get purge if ubuntu/kubuntu) will make the boot much cleaner. Also I get lots of alignment trap kind of errors that shouldn't be there for different kinds of services, (due to tegra bug mentioned earlier).
edit 1: Ubuntu 10.10 with much more working X11 noted in section 2.2.1
Click to expand...
Click to collapse
Its good you got it to work.Saves me some work.I was gonna begin this project my self after the 19th when my exams end.Maybe i could help you.

ergoen said:
I can give it a try later, not that it would make any difference .
edit: 72 Hz also seems to work, cool, that's higher refresh rate than my computer screen...
Click to expand...
Click to collapse
Most computer screens usually support atleast 72hz also, it's just that it only works with d-sub, and sometimes only at a lower resolution.. It's possible to make special drivers to some screens to enable higher refresh rate through dvi also.
Anyway, it's good the screen on the phone refreshes at 72hz instead of 60 for android, but in linux I really don't see the benefit.. Doesn't hurt to have though. Btw, if we would stay on this kernel, can we use the drivers from android then? Shouldn't gpu also work? Or are the drivers limited and don't allow xorg for example? Sorry if it's stupid question, don't have that much knowledge how android works yet.

Update: X11 and touchscreen work on Ubuntu 10.10 Maverick with new kernel (just a few hacks )!
manasgirdhar: sure! Lot's of things to do new kernel is needed for anything newer than ubuntu 10.10, and even here things like sound etc (cpu scaling maybe too) don't work.
kruppin: actually i removed the xorg.conf now, the phone thinks its running at 106 Hz and it works. Unfortunately in practice it goes at more like 20 Hz because of the hack I made to enable the fbdev output in the kernel. Android doesn't use X11, so those drivers wont be of any use. (I will post the kernel modifications to github soon)
edit: kernel source up on https://github.com/ergoen/LG-Optimus-2x-linux-kernel

A List of Things working at 2nd Post would be nice.
So anybody could fast see Updates,...
Edit:
Have you tried some "cleaner" Linux like Debian?

Alpha 1 is up in the second post for anyone who wants to test it (don't ^^).
I have not tried debian no, I thought ubuntu would be the easiest to google errors and bugs for .

You are great! i was hopin' for this since I have mine. You should try to make usb(otg) work to get some devices going i will try to test it soon

That's amazing We have to test USB OTG function. If it works by default, I'll try this right now
It is possible to make a dual-boot: ubuntu and android?

I don't think usb otg works since I am basically using the android version of the kernel, I also won't be able to try since I don't have a cable... (will buy one sooner or later).
Dual boot probably works if you flash the boot.img onto the recovery partition instead of the boot partition (/dev/block/mmcblk0p7 instead of /dev/block/mmcblk0p5). I have not tried this though. That way regular booting would give android and booting while holding volume down would give ubuntu, only problem with this is that cwm will be gone and the only way to fix broken things would be to flash with nvflash.

well it is not a major deal if have cifs avail needs kernel support as well. Benee mentioned (might) some otg support, mayb u could ask.
also, you might give E17 a try, it is butter-fast, and has a touch module for keyboard (letter zooming.!..) LINK
this can be compiled on a lot of hw, and gives good response with fbdev non-accel drivers also.
and most linux apps work on it fine. ofc until we have 2d/3d accel and might try compiz/fusion as well
LINK

Great job ergoen!
I've worked on exactly the same some weeks ago but i never accomplished it. because i stuck creating a working ramdisk. Which toolchain do you use?
MfG

Related

[DEV] Ubuntu on Nexus S (natively)

Ok, so following on from the MeeGo thread, I have Ubuntu booting on the Nexus S using the same method and same kernel.
The Ubuntu image used is the HD2 Ubuntu image (v 0.3), loaded from a file on the internal memory (again, no flashing required - you can thank me later).
The touchscreen isn't yet working, but that's my kernel at fault. Will fix that with the MeeGo stuff.
If you want to try this yourself, first grab yourself a copy of Ubuntu for HD2, and take just the rootfs.ext2 file and drag it to your Nexus S (put it in a folder called 'ubuntu' - lowercase is important!).
Then use fastboot to boot the following image (or flash it to recovery partition if you're daring and know how dangerous that can be):
http://dl.dropbox.com/u/8657343/bootUbuntu.img
You will need to do one minor edit once the device is booted; you will see the screen output is very weird; ADB push the following file to /etc/X11/xorg.conf, and then reboot Ubuntu:
http://dl.dropbox.com/u/8657343/xorg.conf
If you're in any way interested, please click the thanks button! Otherwise, enjoy!
nice!
the next thing we'll need after getting the touch screen working
is to have a calling app daemon, and make sure internet works on both 3G and WiFi
nice, look same at Ubuntu Netbook Edition
What about Galaxy S?
Njcki said:
What about Galaxy S?
Click to expand...
Click to collapse
In theory the same stuff should work; I don't have a Galaxy S to test on or I'd try it. I don't know anything about the Galaxy S' bootloader, or how much the kernel would differ (I'm guessing not at all, since this is a stock Samsung kernel from the Android kernel source)
I did an article on my site http://www.android-ita.com/dev-port-di-ubuntu-sul-nexus-s/
Maybe some italian devs, will help you
Thanks for this, gonna have a play now
Why is it dangerous to flash the boot image to recovery? Isn't fastboot lower level than recovery, or have I got that wrong?
nice, thanks. trying this as soon as my wife gets off my phone.
Oh my god.. You are awesome good sir. Will give it a run when touch is up and running!
I'd love it to be run from Android....i dont want it natively, just to test it...booting for example from an android app
I would love to know if this will work on Epic 4G. I'm going to give it a shot to see what happens.
Great job
Could you give us the sources of your kernel ? Is it patched ?
Tyruiop said:
Great job
Could you give us the sources of your kernel ? Is it patched ?
Click to expand...
Click to collapse
There are no changes to the kernel at all so far. I changed the config file to enable VTs, that's it.
Ok, thank you, I'll try to build one myself
can this method be used to install android 2.3 on a phone running android 2.1,
especilly in the case when upgrading is difficult because of kernel and locked bootloader (like motorola devices) ? excuse me if it is a silly question, i'm not a coder.
would it be possible to make an app that re-boots into fastboot and runs the fastboot command. since we dont always have a comp available to run fasboot which makes this useless if your not at home, or have a laptop (in which case you dont need ubuntu on a phone)
works on Nexus One right now ?
--> ok I'm trying
It blocks on X screen of my nexus one.. before the classic bootanimation.zip
Someone have any idea about that ?
Ok, so I've got wifi working . Here is my solution. A little bit crappy but... hey... it's a start ! Also, I tried compiling the kernel with the module built in and it wont boot, and I don't know why ?
Howto get wifi :
1) Boot Ubuntu following stroughtonsmith indications
2) Download http://tyruiop.org/~tyruiop/wifi_nexuss_ubuntu.tar.bz2
3) push the vendor directory at the root. The path must remain (/vendor/firmware etc...) and the bcm4329.ko file wherever you want.
4) reboot under ubuntu
5) *optional, only if ifconfig -a doesn't show eth0* type insmod /path/to/bcm4329.ko
6) Type "ifconfig -a". An eth0 interface should appear. It's wireless. You can configure it with wpa_supplicant without a problem .
Uhm.. with Nexus One, Ubuntu blocks on X SCREEN (before the classic bootanimation).. Maybe something that I do is wrong ?
- Download HD2 Ubuntu
- mkdir ubuntu/
- put in ubuntu/ the fs on the archive I downloader
- put ubuntu/ in the SDCARD
- adb reboot bootloader
- fastboot boot bootUbuntu.img
Is it correct ?

Webtop2sd

http://forum.xda-developers.com/showthread.php?t=1119555
Logically speaking, this application should also work with the Bionic correct?
Just wondering, if its deemed safe in this thread to attempt using, I will try it and post back with results.
---------- Post added at 12:30 AM ---------- Previous post was at 12:08 AM ----------
Okay, so I just backed up everything and tried the app, which won't work due to the fact that it checks the phone model number, Theres a manual guide to get ubuntu running on the atrix, and I'm going to start from scratch there. Probably going to be a couple of days before I do anything since I need a new microhdmi...
I tried the app that comes with it to partition the sdcard but it does a device check then it stops with an error message that the device is not an Olympus (Atrix). Maybe we can get the dev to check on the differences, albeit small, for the Atrix and the Bionic.
Worth a shot. I've been playing around with /osh for a few days but had to reflash to stock due to the lapdock staying on the screensaver.
Hey guys, I am working on the same thing at the moment trying to port over Sogarth's method of unlocking the 10.10 maverick build of Ubuntu on our phones.
http://forum.xda-developers.com/showthread.php?t=1000316
The link here is for his old automated .bat script he made for the Atrix that I believe will work for our phones with a little modification to it to reflect Maverick packages instead of the Jaunty packages for their phones.
Please jump into the irc in my sig because I would like to get this going as well.
I would hop in IRC but I'm about to head out the door.
I'm currently approaching this situation from two directions:
1.) I'm dumping /osh/ (webtop partition) and uploading it to dropbox as soon as I can get a complete dump. (hopefully tonight) and providing it to the original Atrix dev to see if he can hook us up with an app to help do whats needed
2.) I'm also attempting the manual method as soon as I get a new microHDMI cable (I was using a cheap adapter).
You are 100% correct though, you should be able to get that install script working just by changing the packages to reflect the updated Ubuntu. MAKE SURE you backup ANY files before you change them (and preferably a complete backup of /osh/. Since we have SU on our phones we have free reign over the /osh partition, so be careful in there.
OT: I can't wait until we can get on-demand CPU overclocking for this thing... if it clocks as well as past mobile chips... Toggle 1.2-1.4ghz and plug it in the LapDock. You'd have a damned fine netbook...
(Not necessarily talking to any experienced users or noobs, the disclaimer about Linux & SU is for everyone reading this thread - I'm relatively experienced in the Linux world... and I need to be reminded of SU's power sometimes.)
I just realized that their phone's Ubuntu distribution is under the 9.x series versus the 10.x series. A lot of Major changes happened to Ubuntu between 9.x and 10.x that affected the way the operating system talked to devices and booted, they stopped using HAL and moved to a new boot method, I am uncertain whether or not the install script will work or not, though I'm somewhat confident it will, given the nature of webtop (Android does the hardware abstraction, and the booting, we just run a second set of executable's on a different X window session attached to a different display) This should mean that the portions that would normally prevent us from just duplicated the script are omitted from the Ubuntu distribution entirely. As long as we keep a backup we should still be fine.
No worries, just remember to keep FXZ and RSD handy. I've screwed up the /osh partition a couple times but that has saved me from complete disaster so far
Good call on bringing this up. Let me know if you need to test anything for this.
@xaero252
So I modified Sogarth's script to use Maverick build of all the tools it downloads and installs but the problem with the script is that it needs the phone to have the ro.secure=0 so that ADB always launches with root access without manually initiating su each line of code. I am not sure if there is a way around it or if we have to modify the script differently. Anywho, I've upload a copy of the work I've done to the script.
Is it just an sh script? If so and ut doesn't reboot the phone at all you could launch a SU terminal and do "su sh script.sh"
oh i see the issue now... we would have to be able to edit the boot loader for that method... if i'm correct though his android app doesnt use the pc for much... if you change that variable on boot do you think it woukd work?
Hmm, I have an idea, its not as polished as the pc based script, however it should still work presuming you can get a SU terminal to run on the phone ( I happen to have one running right now ) I'm going to see if I can't adapt that to a bash script. probably going to take a while.
Curiously we happen to have a 1.5gb partition for Ubuntu on built in memory, where as the atrix only had a 600 or so mb partition... This is great because we should likely be able to continue to install /, /boot and such to internal memory, and use the sd card (even left as ntfs) for /home...
Couple of things: reading through the script it looks like 100% of the commands he runs could be run on the phone via a bash script run as su. The idea is this: convert the entire script over to bash, copy the script, and the required files to the phone, and execute the script from the phone. The only other concern I can see is the wget package included with the script not being compatible with maverick, which doesn't seem likely.
I'm gonna start working on rewriting the script linux native. My idea is to use a terminal emulator (they are free on the market) and run su script.sh and pray. I need to get a new microHDMI before I do this though, so I can test my results reliably.
xaero252 said:
Is it just an sh script? If so and ut doesn't reboot the phone at all you could launch a SU terminal and do "su sh script.sh"
oh i see the issue now... we would have to be able to edit the boot loader for that method... if i'm correct though his android app doesnt use the pc for much... if you change that variable on boot do you think it woukd work?
Click to expand...
Click to collapse
As far as correcting that, no one has attempted doing custom kernels yet so to do the edit to get root access out of the gate is moot at this point.
Hmm, I have an idea, its not as polished as the pc based script, however it should still work presuming you can get a SU terminal to run on the phone ( I happen to have one running right now ) I'm going to see if I can't adapt that to a bash script. probably going to take a while.
Click to expand...
Click to collapse
Your linux skills are probably 10 folds better than mine but I believe if you convert my modified script, which has all the necessary links to the correct packages for our phone, then it might just work.
Curiously we happen to have a 1.5gb partition for Ubuntu on built in memory, where as the atrix only had a 600 or so mb partition... This is great because we should likely be able to continue to install /, /boot and such to internal memory, and use the sd card (even left as ntfs) for /home...
Couple of things: reading through the script it looks like 100% of the commands he runs could be run on the phone via a bash script run as su. The idea is this: convert the entire script over to bash, copy the script, and the required files to the phone, and execute the script from the phone. The only other concern I can see is the wget package included with the script not being compatible with maverick, which doesn't seem likely.
Click to expand...
Click to collapse
The WGET I packaged in the .zip is the correct for Maverick along with all the files in the \bin directory are corrected to match our phone. If you can convert all this to a bash script, that would be awesome instead having to do each command via ADB Shell. The only problem I had with this is every time I tried to run the DPKG command on the .deb I downloaded manually, it threw up an error saying it could not find the file or destination.
On a side note, you are correct that we have 1.5gb partition opposed to their 700mb so we could honestly forget the part about creating a ubuntu.disk on the /data partition and modify the /osh directly for now until the time we need more space. After that, we can see if Sogarth will incorporate your script into his Webtop2sd app or we could make a 3gb ubuntu.disk on the /data partition since we have plenty of space there.
I'm gonna start working on rewriting the script linux native. My idea is to use a terminal emulator (they are free on the market) and run su script.sh and pray. I need to get a new microHDMI before I do this though, so I can test my results reliably.
Click to expand...
Click to collapse
Make sure you get the adapter as well to trigger Webtop cause at the moment our phone wont do webtop directly over HDMI without the HD Dock, Webtop adapter or Laptop dock. If you want to test the script out for now, hit me with the script and I will test it for ya

Linux ON droid not IN android question????

Ok, this goes out to any and all DEVs out there. We all know by now that we (some people not me) can run linux within android using the loop mounts, vnc viewer, etc... Now how about REPLACING android with a linux distro like debian or maybe even what these guys use http://openpandora.org/ ..... its linux based and has an arm CPU.. Any way I'm talking about flashing over android wiping the internal sorage and installing linux on it or even using the boot loader to flash over android???, of course this is getting rid of any 3g connection and phone usage. I understand that, I am talking about giving our RETIRED droid 1s a use. I wanna see my D1 run a linux distro in full hardware mode NO MORE ANDROID. now dont get me wrong I love android as much as the next guy, but why now flash something else to it???
Another link I found, this is for windows mobile but hey, similar idea.
http://wing-linux.sourceforge.net/trac/wiki/FAQ
P.S. I AM NOT A DEV JUST AN IDIOT WITH AN IDEA!! my ignorance is NOT bliss and I would love to know if this is even possible. I'm willing to help ANY WAY I CAN. lol
THANKS!!!
I don't think it's possible. Because of the locked bootloader we're forced to use Motorola's bug-ridden Kernel and as Android's Kernel is a heavily modified Linux Kernel it most likely won't run an ordinary Linux distro.
But I'm no expert either
Milestone is locked, Droid is not ...
Maybe this will help (if you don't know german, you can use Google Translate):
http://www.android-hilfe.de/anleitu...debian-chroot-mit-lxde-auf-dem-milestone.html
Thanks for the replies. Again the USA Droid 1 is nit locked or at least has been completely unlokcked. I've read a million "run debian on android" posts... I don't need to know German to see that the post above is the same thing. Like I said before I have NO INTEREST IN RUNNING LINUX ON ANDROID. I want TO REPLACE android completely with Linux to make a device like the openpandora handheld from my first link.
Any one up to the challenge????
Thanks again!
Really, no one??
I've been running Debian on my Droid booting from the SD card for a while, more recently trying Arch Linux after realizing that anything optimized for ARMv7, VFPv3, NEON, or Thumb-2 (I'm not sure which unfortunately) won't boot because of a page fault or something. Ubuntu, MeeGo, and Angstrom just kernel panic and don't give any useful information even at the highest debugging level. I'm back to using an ARMv5te Arch Linux build (http://archlinuxarm.org) although I could just as well use Debian. I really wish Ubuntu worked for multitouch.
Well, I got the touchscreen calibrated! I forgot that my screen rotation hack only rotated the framebuffer It's stuck in portrait for now. I decided to use mtev (MeeGo's multitouch X11 input driver) after being fed up with evdev's aversion to being rotated, but now that I'm back to the stock portrait rotation evdev should work fine.
If you want instructions, either PM me or wait until I post a full guide and/or my patched kernel tree. It's not super difficult, but it's a lot of command line use and compiling.
What works:
*CPU and SD card (obviously )
*Touchscreen (single touch/portrait only for now)
What needs work:
*Keyboard mapping is wrong, the number keys and symbols don't work. I need to figure out how Android handles Alt. I had to patch the GPIO keyboard driver because the keyboard worked in the console but not in X11, which expects EV_SYN.
*Sound is OSS only, but there is no mixer device, so aumix is useless and there's no volume control or sound output.
*I haven't tried the SGX driver, so I can't comment on hardware acceleration yet.
*Battery charging relies on battd, which is a proprietary Android binary from Motorola. It might run on Debian with "ls -s / /system" and the creation of the socket it expects (init.sholes.rc I believe), but I'm not getting my hopes up.
Untested:
*WiFi (needs firmware, but should work)
*Bluetooth
*Calls/data
*Sensors (although the accelerometer and compass seem to be recognized by evdev)
I'll upload my kernel, either as patches or on GitHub (or binaries if there's enough demand) once I get around to fixing the keyboard issue. Fingers crossed that I don't get carried away cleaning up the kernel, or worse yet, give up...
This is incredible news! I'm so glad to hear it. Of course you are running in hardware mode? Not through android? If so I'm super exited about this! I love arch Linux, I run it on all my computers and I understand it more than any other distro I've tried. I would love to give it a shot, though I'm not that great at compiling I think it will be worth it.
As I said before I am in no way a dev or even a Linux pro, but I can get by and if theres any way I can help this project become "complete" I'm willing to learn what ever is necessary to do so.
Also were u able to get an x server running? Possibly a DE? That would be crazy awesome.
Thanks a million, looking foreword to work with you and make this happen!
For anyone who's interested, I put together a quick package containing my kernel patches, configuration notes, and an automated kernel build script.
It's pretty self-explanatory aside from the installation of the root filesystem, which I leave up to your imagination
As I've probably repeated several times now, I've run Debian and Arch Linux natively on my Droid with my patched kernel (no chroot or VNC "hack"). With enough determination, it's possible to run practically anything on it - personally, I'm determined to get Ubuntu on it.
WOOT... insta-fail for me LOL you have it set up to work in specific directories? I thought i placed everything right but I guess not.. I got an error on the first line of output lol
Welcome to gTan64\'s lazy Droid kernel compiler\!
build.sh: line 5: [: missing `]'
build.sh: line 5: -z: command not found
build.sh: line 5: -z: command not found
Entering $WORK
Applying patches
build.sh: line 16: /*.patch: No such file or directory
mv: cannot stat `/arch/arm/boot/compressed': No such file or directory
cp: cannot stat `/compressed': No such file or directory
Setting up build
cp: cannot stat `/GNUmakefile': No such file or directory
cp: cannot stat `/sholes_config': No such file or directory
FIXME! No numeral or symbol input until someone finds a third-level
modifier key to use instead of AltGr for the keyboard.
cp $MISC/defkeymap.map $K_SRC/drivers/char
Building kernel!
make: *** No targets specified and no makefile found. Stop.
Kernel build done!
You have done something amazing, I'm just to stupid to figure it out my self. XD
I can understand why you would want ubuntu with all its pre-setup glory and support for nearly all hardware but dont you think its a little heavy for this hardware? lol I doubt you would try to use the Unity UI but I doubt that alone would even fit in ram LOL you could just use the ubuntu packages and drivers with debian maybe?
THANKS AGAIN!!!!
That's what happens when I don't test my own scripts
I was thinking too much about making it easy. Just try applying my patches to your tree manually.
Code:
cd kernel_src
patch -p1 <../patches/first.diff
patch -p1 <../patches/next.diff #and so on...
#Obviously, substitute the paths of the actual patches ;)
#Finally, copy sholes_config to .config and invoke 'make'.
It's actually much simpler than my script makes it, and you don't need my convoluted folder setup.
UM lol I cant find any patch files? are they in the ZIP? or do I have to obtain them elsewhere?
I can tell this is gonna be a hell of a project LOL
THANKS!!!
"Duh" moment - I used the .diff file extension instead of .patch
I'm such a scatterbrain... Remind me not to release anything before testing
EDIT: Strike that, reverse it. They're .patch files.
I AM BLIND lol I found them... BUT.. when I try to patch. terminal just seems to lock up... I press enter, the curser moves to the next line but it doesnt do anything. lol how long should 1 patch take?? its been about 10 minutes and I leave it be for now
EDIT:
LOL i forgot the "<" in the command OOPS but I'm not seeing any .config file or folder in the source to copy the sholes_config too. yes I have show hidden files on.. PS unfortatly usinf Fedora 15 gnome 2...... (on server so I can work on this anywhere through vnc )
THANKS
When I said "copy sholes_config to .config", that's literally what I meant. .config is the Linux kernel build configuration file, not a folder.
'cp /path/to/sholes_config .config' from your kernel tree should do it.
Oh, I forgot to mention that you need an ARM cross-compiler/toolchain. I use the gcc-arm-linux-gnueabi package in Ubuntu, but I don't know what the Arch equivalent is off the top of my head.
The "GNUmakefile" is just a convenience, it exports "ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-" before calling the actual makefile. If you don't have an ARM cross compiler in your path, it won't build at all. If you do, modify CROSS_COMPILE to point to it - on some systems it's called arm-unknown-linux-gnueabi, etc. etc.
Let me know if you get anywhere before it errors out.
OK I put the config file in the kernel_src but unfortainatly I'm using Fedora 15 XP I installed arm-gp2x-linux-gcc which is the fedora arm gcc I guess... lol so wha would I edit in the .config to make it point to arm-gp2x-linux-gcc. Its not my first attempt to compile an android kernel but I've never been succesfull LOLOL
thanks
I'm pretty sure that toolchain won't work - the GP2X was ARMv5 IIRC, so unless it's a newer build of GCC (4.3 or higher) and you're absolutely sure it supports the ARM EABI and the ability to generate ARMv7 instructions (which is unlikely if it's pre-4.1), I would recommend a newer toolchain.
CodeSourcery makes a pretty solid one: https://sourcery.mentor.com/sgpp/lite/arm/portal/release1803
If you end up using it, you can change the second line in GNUmakefile to "CROSS_COMPILE=arm-none-linux-gnueabi-". Don't worry about changing .config.
Well I DLed the linux/GNU installer and it gave me "arm-2011.03-41-arm-none-linux-gnueabi.bin" LOL
so I was thinking would it just be easier to just use my lappy with crunchbang (debian based) so I can follow ur instructions with deb / apt-get LOL fedora is a ***** and it dont have what I need... I cant find an arm v7 cross compiler for it
thanks
.bin files are the Linux equivalent of Windows EXE installers. Run it like this:
Code:
#cd /path/to/installer.bin
./installer.bin
#substitute the actual name, of course.
It needs root permissions if you want to install it to /usr/local (sudo ./installer.bin or su -c 'sh installer.bin'). You can also install it to /usr, but that will make it more tedious to uninstall later. If you decide to install it in your home folder - say ~/toolchain - you don't need root permissions, but you will need to add ~/toolchain/bin to your path:
Code:
export PATH=$PATH:$HOME/toolchain/bin
To be honest, I prefer Ubuntu to Fedora/OpenSUSE/$RPM_distro, so if you have access to a Debian or Ubuntu system, using that would make my life easier
Omg duh... the "non_Linux" part of the name true me off lol i'll start doing this on my laptop it's deb based crunchbang. I prefer anything over rpm distros too but it was a quick painless install on my server XP thanks ill try this when I get home
Sent from my DROIDX using XDA App

DebiAndroid [WIP] - Debian native/chroot for datamedia Android installations

Debian for the HP TouchPad
Downloads:
todo: add pics and binary links, for now there's https://mega.co.nz/#F!xZ81iKoK!Xio5bV9yjBRPTIzjLhCX3A
Source:
Kernel Builder: https://github.com/CalcProgrammer1/kernel_tenderloin_debian
I put together this kernel builder repository that contains the ramdisks needed to boot either a discrete Debian partition or a chrooted Debian install. It uses submodules for the kernel and backports sources. You can just run the mkbootzip.sh file and it will build the uImage.Debian/uImage.DebiAndroid moboot kernels. Choose the one that fits your installation method and install it to /boot on the TouchPad.
Kernel Source: https://github.com/CalcProgrammer1/..._msm8660-common/tree/tenderloin-cm-11.0-wip-5
Backports Source: https://github.com/CalcProgrammer1/backports-3.10-2
Thanks to jcsullins for porting the TouchPad to the samsung_msm8660-common kernel, without which this would not have been so easy! The Note 1 shares this kernel tree and I already had Debian working on it, made the port to TouchPad dead simple.
So I got an idea that I'm working on. I have been using Debian in a chroot on my Note 3 and it's really convenient to have both Debian and Android running side-by-side, but there are some things (mainly hardware/GPU hacking) that work better with a native install of Debian/Ubuntu/etc. On my Note 3 (which uses a datamedia partitioning scheme) I decided to forgo using a loopback mounted img file for my chroot and instead dump the Debian rootfs straight into my /data partition in the /data/debian directory. Why? With this configuration, Android, Debian, and Internal SD all share the same storage partition and can grow or shrink as space allows rather than deal with micromanaging partitions and having to resize. Want to install a desktop environment and delete it later? Go ahead, space allows.
So I decided to reformat my TouchPad with TP Toolbox last night and get CM11 running on it so my Ubuntu partition got wiped. That got me thinking...if I install my datamedia Debian installation, could I then write an init script to boot directly into it from a kernel? If so, the same Debian installation (residing in cm-data LVM in the debian directory) could be used both as a native install as well as a chroot from Android. Awesome!
So that's what this project is, create a Debian rootfs that doesn't require repartitioning, works as a chroot, and works natively as well. I'm calling the project DebiAndroid because it merges Debian and Android. Got some time to work on it over the weekend so hopefully I get something up, but for those who want to do it yourself it's basically just that:
1. Use debootstrap to generate a Debian armhf rootfs
2. Use qemu-user-static and chroot on your PC to install all the packages you want on your rootfs
3. Compress rootfs, put it on TouchPad, decompress in /data/debian
4. Write script to bind system FS entries to /data/debian and chroot in
5. Write init script to boot directly into /data/debian for native use
So far I've been successful at all of these, having a working chroot (with MATE desktop through XServer XSDL app) as well as booting into the chroot (terminal only right now, and USB OTG was broken so I couldn't log in). Hopefully I can get some 3.4 kernel action going as well. I'll update this post once something happens.
EDIT 1: I'm in! I forgot to set a password for root and I don't have any other accounts at the moment, so I rebooted into CM11 and chrooted in, set a password. Also had to disable the ALSA service because there's a missing firmware file that crashes it. Now to get networking up and running, I think I'll just build a kernel locally and modules_install rather than deal with cross compiling.
EDIT 2: I'm at it again, this time going to focus on Freedreno graphics as I'm really close on my Note 1 port which uses the same GPU and now the same kernel source tree as well. I was able to get a rendered 3D screensaver to run for a few seconds on my Note, should be repeatable on the TP.
EDIT 3:
Kernel Source: https://github.com/CalcProgrammer1/..._msm8660-common/tree/tenderloin-cm-11.0-wip-5
O_O
Man, that sound really great ! I would like to try it and install it as a zip file on another partition. How much space do you need for the root partition with your mate install ? Did you got some problem with the touchscreen sensibility or with bluetooth, wifi, camera, micro or sound not working ? I guess i could try one with Gnome 3 on my side. Thank in advance for your reply.
Right now it's only working in chroot, so Android is providing the X-server and touchscreen and everything else. I'm trying to get the kernel 3.4 to boot it outside of Android.
I hope you can do it. ^_^ Maybe I will try to find a way to make it work with Arch Linux with your kernel if you succeed to this project.
So finally, one month later, did you succeed into making Debian work for the Tenderloin ?
I got Debian with Freedreno sorta working on my Galaxy Note:
https://www.youtube.com/watch?v=qtb-TSGumNo
The kernel patch I used to make this work seems compatible with the TouchPad kernel source here:
https://github.com/TLOIN-3X-WIP/android_kernel_samsung_msm8660-common/tree/tenderloin-cm-11.0-wip-5
which is based off the same Samsung msm8660-common 3.0 kernel.
If all goes well, this should be pretty simple to get running on the TouchPad same as it is on the Note, which are pretty similar devices in terms of core (MSM8660 vs APQ8060).
EDIT: My kernel patch applied perfectly! I was able to get into X but the backlight shut off and I couldn't see anything without shining a bright light through the swamp of fingerprints covering the screen. Need to fix that issue but hopefully it's working otherwise!
EDIT: Freedreno confirmed working, but still no backlight. It should be at the same level as where my Note 1 demo is (runs es2gears, rss-glx screensavers) but of course I can't see much anything so once I figure out what's turning off the backlight then we should be good to go.
EDIT: Using jcsullins' wip-5 branch fixes the backlight issues. Here's a video:
https://www.youtube.com/watch?v=vx8_u1jhXJY
CalcProgrammer1 said:
I got Debian with Freedreno sorta working on my Galaxy Note:
https://www.youtube.com/watch?v=qtb-TSGumNo
The kernel patch I used to make this work seems compatible with the TouchPad kernel source here:
https://github.com/TLOIN-3X-WIP/android_kernel_samsung_msm8660-common/tree/tenderloin-cm-11.0-wip-5
which is based off the same Samsung msm8660-common 3.0 kernel.
If all goes well, this should be pretty simple to get running on the TouchPad same as it is on the Note, which are pretty similar devices in terms of core (MSM8660 vs APQ8060).
EDIT: My kernel patch applied perfectly! I was able to get into X but the backlight shut off and I couldn't see anything without shining a bright light through the swamp of fingerprints covering the screen. Need to fix that issue but hopefully it's working otherwise!
EDIT: Freedreno confirmed working, but still no backlight. It should be at the same level as where my Note 1 demo is (runs es2gears, rss-glx screensavers) but of course I can't see much anything so once I figure out what's turning off the backlight then we should be good to go.
EDIT: Using jcsullins' wip-5 branch fixes the backlight issues. Here's a video:
https://www.youtube.com/watch?v=vx8_u1jhXJY
Click to expand...
Click to collapse
OMG ! It seem great ! Can you share your method how to install it with a zip file and if you can, make a tutorial of how to port a Linux OS on the TP ? It would be really appreciate to be able to finaly run a linux desktop on the Touchpad. Thank you very much for your hard work. ^_^ Cannot wait to try it.
awesome job ! I cannot wait to try it out myself !!!!!!!!!!
let us know how to install it
Still lovin and rockin my good ol' Touchpad haha
I updated the OP with links to my source code and the build root I use to build the kernel images. If you want to build your own kernel go right ahead and play with it. As for a prebuilt image, it probably won't happen for some time because my rootfs on the TouchPad is a mess (installed a bunch of very large apps like games that aren't feasible to redistribute). I'll have to make a new rootfs from scratch. Since Freedreno is on the verge of making it into Debian testing as it is, it would be best to just wait for that to happen so I don't have to redistribute custom builds of the xserver-xorg-video-freedreno driver (you can build it from source as it's on Debian's git and builds with dpkg-buildpackage, just hasn't made it into a binary release yet). There's also a bug in Mesa that prevents Freedreno from accelerating 3D (GL or GLES). It's a one-line fix and Rob Clark said he's pushed it to master, but it hasn't made its way into a stable Mesa branch yet and thus still needs to be applied manually. Rebuilding Mesa on a TouchPad takes hours. Hopefully that one gets merged soon as well and then we can use straight up Testing without modification. That will make creating a new rootfs image a lot easier. I still haven't messed with getting Bluetooth or touchscreen to work, though the work I and others have done for older Ubuntu releases should apply just fine here. Audio is also going to be tricky, as I deleted WebOS completely and Ubuntu relied on a file from it. I have a webos rootfs that I was able to pull the required files from, but it's not working right.
EDIT: Sound! I talked to jcsullins on #freedreno and he gave me this: https://github.com/CyanogenMod/android_device_hp_tenderloin/blob/cm-11.0/configs/mixer_paths.xml
Those are the initialization settings for ALSA that need to be configured for sound. We can use alsaucm to set these, I just need to figure out how the heck alsaucm configurations work. I got the device initialization working and I threw in the speaker initialization just to test, but no idea how to switch between speaker, headphones, bluetooth, etc. With this method we don't need to pull audiod from webos! That means no more dependency on closed source binaries pulled out of that OS that may or may not exist anymore.
EDIT: I wrote some new alsa ucm files, now it should be able to select headphones or speaker directly. There isn't any jack detection so you'll have to manually switch, though if I could find the input for the jack switch it might not be hard to implement automatic switching. Still need to apply that RGB patch and fix the broken colors.
EDIT: New pic: http://i.imgur.com/SjOPWB5.jpg That's right, applying the RGB patch fixed the desktop and broke the rendering! Some reason the Freedreno GPU-rendered things are using the opposite color format. The big gear should be red and the top one blue. Here's another pic with the TP and Note side by side, running almost the same software: http://i.imgur.com/1kmKDOw.jpg

[Q] Installing Linux Mint 17 on tf701t?

Hello, recently purchased a asus tf701t laptop/tablet hyrbid and the device itself is perfect. Powerful cpu, good storage and an insane 2k resolution for a 10' inch screen which I don't think has been done before.
However I absolutely hate android (no offense to android developers) and decided to try installing Linux Mint 17 which can be installed on any regular laptop easily. Essentially, I want to get rid of both android bootloader and the OS itself and replace that with Grub bootloader and Linux Mint 17 OS. But android is fighting me every step of the way trying to prevent me from doing just that I unlocked the bootloader so my warrenty is void now.
But beyond that I can't install linux iso because the android bootloader isn't registering the usb stick (with linux iso on it) so I can't launch the linux live iso at all. I tried using cdrom iso using disk to launch through usb and still doesn't come up in the bootloader options. I know its possible to use linux on these devices because I've seen people have done it before on the internet.
I am now at this point starting to consider android itself as malware as the very definition of the word, ....lets start with the fact that they locked the bootloader, prompting me to give ip address just to enable me to unlock the bootloader (malicious and very dodgy). No root access therefore, third party programs are required to enable root which further my belief that android os is more malware than it is a legitimate operating system. Lastly, either possibly no usb driver for bootloader or usb port is locked out by design at bootloader (either way, might explain why I can't use usb linux iso).
What I can't understand is, why google can lock down a device tighter than fort knox on a Asus brand device. This is like buying a brand new car and not being able to open your own car even though you purchased it. What google has done is borderline illegal and I'm abit astonished how they can get away with it...
Sorry for the rant guys I'm abit fustrated atm. Can anyone please help me? I really love linux mint and if its possible to format android and install linux mint on this device I would be eternally grateful
Update: I attempted to flash the device with the command: fastboot -i 0x0B05 flash recovery recovery.img which works...but when I reboot and push power and down volume into bootloader...and try to get into recovery...the screen looks like its about to load into it but then resumes boot of android.
I'm really puzzled by this. So cannot flash a custom recovery for some strange reason
Its not so simple I dont think. You might want to watch whats happening on this thread for now.
http://forum.xda-developers.com/transformer-tf701/general/native-linux-asus-tf701t-t2973119
I would think you would have to completely replace the bootloader with something like uboot maybe if you wanted to wipe the tablet. But I dont think anyone knows. Then you could end up with some permanent brick. There would be no recovery or fastboot option if you were somehow able to get some kind of boot loader on this thing. I have no idea.
Edit: Also there is no arm based Linux Mint afiak.
YayYouFixedIt said:
Its not so simple I dont think. You might want to watch whats happening on this thread for now.
I would think you would have to completely replace the bootloader with something like uboot maybe if you wanted to wipe the tablet. But I dont think anyone knows. Then you could end up with some permanent brick. There would be no recovery or fastboot option if you were somehow able to get some kind of boot loader on this thing. I have no idea.
Edit: Also there is no arm based Linux Mint afiak.
Click to expand...
Click to collapse
Thanks I appreciate the reply. I understand this won't be easy but I'm stubborn that way
Can you give me some advice on where I can start learning how to place a native linux os on the device? Would grub bootloader work with tf701t?
have you considered returning your tf701 and replacing it with the tf700 infinity? you can replace the OS with ubuntu.. theres much more support for that model than the tf701
tf701mega said:
have you considered returning your tf701 and replacing it with the tf700 infinity? you can replace the OS with ubuntu.. theres much more support for that model than the tf701
Click to expand...
Click to collapse
Out of curiosity, have you used the tf700t? it is good for development, but it could run pretty slow at times. It might of been because of the tegra 3 processor, because the tf300t also had this performance issue. I was barely able to type up documents on a CM Rom because the tablet would lag when typing out and would then force close and corrupt my document.
atleast for me, that was the reason why I went with this one rather than the tf700t. This is just my 2 cents about getting the tf700t. I would suggest trying it out before getting it.
Sent from my K00C using Tapatalk 2
Just how stubborn are you?
How much work do you want to put into this? There are two options, the easy route that you probably will consider imperfect, and the much more complicated route that I'm not certain will work. I'll do my best to explain both.
The method I use is to install a linux distro (in my case, ubuntu) inside a chroot. There are several apps on the android market to help you set this up. The one I used sets up an Xvnc server, so you can view your linux desktop by using an android VNC viewer -- but it's just connecting locally, not going over the network.
This works nicely out of the box, but it's slow, partly because it's using the VNC protocol and partly because there's no 2d hardware acceleration. I tinkered with my setup and installed XSDL, a native android X server with hardware acceleration. I had to modify the linux startup script to skip starting Xvnc and instead connect to XSDL (which is on :0.0 like a normal X server).
This works great and is fairly fast. For me, this is a good compromise between a full-fledged linux laptop and the convenience of android apps written specifically for a multitouch screen. I generally do most of my stuff in Android, but I can drop into my Ubuntu desktop whenever I need more power.
The really big downside is that it's hard to prevent Android's low-memory killer from sacrificing XSDL when I haven't used it for awhile. I've mucked about with various solutions involving oom_score_adj and such, and that helps, but android still ends up killing my X server sometimes.
So, that's the easy method. For the more complicated method, I'm just theorizing, and this stuff may not work. You're going to need to either already have somewhat deep linux knowledge or be willing to learn Here goes.
In this post, I described how I managed to boot my tf701t after the internal memory card died a horrible death. The important bit here is that I learned how to boot any initrd/kernel combination using fastboot, and how to roll that combination into a boot.img so that the tablet always boots it. This is what you'll need to do both for the installation and for future boots into your Linux install.
First off, choose your Linux distro. I don't think you'll be able to use Mint, since, as someone pointed out above, there's no ARM build of Mint. However, there is an ARM build of Debian and Mint has the "debian edition", so maybe there is an ARM version. It may be, though, that the Mint folks only built their special stuff (Cinnamon/mate/whatever) for x86 platforms. I'd recommend Ubuntu as a compromise since I know it runs on the tf701t.
For the initial installation, put the contents of the install ISO onto an SD card -- just copying your bootable USB drive over should work. Now for the tricky bit: you'll need to pull the kernel and initrd ("ramdisk", "initial ramdisk" -- usually initrd-<something>.gz) off of the usb drive and into a working directory on a Linux laptop or desktop (let's call it the "host"). You might get away with just fastbooting this kernel/ramdisk directly. Install the fastboot package for your distro (Ubuntu has one, anyway). Connect up your tablet, put it in fastboot mode (I think that's done by booting with volume up and down held) and do 'fastboot boot <your kernel> <your ramdisk>'.
This will boot the kernel and load up the initrd, which is a tiny little linux filesystem stored in memory. The kernel runs a program called init inside the ramdisk and init takes over and boots into the actual installer. The question in my mind is how it goes about finding the ISO contents. If it searches by filesystem UUID, and there's a good chance that it does, then it will find your the ISO contents on the SD card just fine and the installer will start up.
If not, well, things will get a lot more complicated. Normally what one would do in a case like this would be to pass kernel command-line arguments (you do this in the SYSLINUX bootloader for distros like Ubuntu) telling it where to find the installation media. We can't do that because fastboot doesn't let you pass command-line arguments. Instead, you'd need to extract the initrd on the Host machine, modify the init script in some way to tell it where to find the installation media (probably /dev/block/mmcblk1p1), and then repackage it. I went into somewhat shallow detail on how to do the extract/repackage parts of this, but this is where either prior linux knowledge or a willingness to do some research comes in. Hints: gunzip the initrd, then use the cpio tool to extract it.
Okay, so let's say that you get the installer booting. The next big question is whether it's going to work at all. In theory the graphics chip inside the tf701t is supported by linux, but in practice, maybe it's only supported by a kernel module that Samsung built. Maybe you'd need to substitute the stock kernel. The next question is whether X has a module that will work with the graphics chip. But maybe even if it doesn't you can use a text-mode installer. That would at least let you get a system installed that you could then hack on to try to get X running.
So, let's say you do get linux installed (probably onto the internal SD card, /dev/block/mmcblk0). Now you want to boot it. You'll need to look into the installed system and steal its kernel and ramdisk, and get them onto the Host machine. Or maybe you could just extract them from the debian packages, since I'm not sure how you'd get things off of that internal SD at this stage. As a hint, these may well NOT be the same kernel/initrd as in the installer.
Once you've got the kernel/ramdisk, you can try to boot into them with fastboot. If that works (big if), then you'll want to be able to boot them without fastboot. That's where the 'fastboot flash:raw' command comes in. It takes a kernel/ramdisk, builds an android boot.img out of them, and flashes it to the device. From then on, the device will boot that kernel and ramdisk by default.
So, in theory this could work. The biggest potential stumbling block is whether X is going to natively support the graphics chip. If it doesn't, you may be stuck using the basic framebuffer driver, or maybe that won't even work at all. ...or you could just settle for the chroot method and be done with it
Good luck. I'm very interested to hear whether this works. I'm probably not going to try it myself since I like Android enough that I want to keep it around. I also can't walk you through this in finer detail because of external limits on my time, but I'd be happy to answer theoretical questions and specific technical questions, so long as you're willing to do the legwork of reading manpages and such I hope this works out for you!
Oh, one thing just occurred to me: skip the part in the installer about installing grub. It's not going to work on this device and may cause problems. You'll take care of the bootloader part yourself with the fastboot flash:raw command.
Oh, I see there's already some decent progress in this thread. Also it looks like I totally missed the -c option in fastboot that lets you pass kernel command-line arguments... that'll definitely be a time-saver. Given what I see over in that thread, it looks like we may actually get a reasonable native linux on our TF701t. Not sure how far the OP has gotten on things like mouse/keyboard input, though.
I have to say, I'm pretty excited! It'd be super cool to be able to dual-boot native linux and android on this tablet. Best of both worlds.
lexelby said:
How much work do you want to put into this? There are two options, the easy route that you probably will consider imperfect, and the much more complicated route that I'm not certain will work. I'll do my best to explain both.
The method I use is to install a linux distro (in my case, ubuntu) inside a chroot. There are several apps on the android market to help you set this up. The one I used sets up an Xvnc server, so you can view your linux desktop by using an android VNC viewer -- but it's just connecting locally, not going over the network.
This works nicely out of the box, but it's slow, partly because it's using the VNC protocol and partly because there's no 2d hardware acceleration. I tinkered with my setup and installed XSDL, a native android X server with hardware acceleration. I had to modify the linux startup script to skip starting Xvnc and instead connect to XSDL (which is on :0.0 like a normal X server).
This works great and is fairly fast. For me, this is a good compromise between a full-fledged linux laptop and the convenience of android apps written specifically for a multitouch screen. I generally do most of my stuff in Android, but I can drop into my Ubuntu desktop whenever I need more power.
The really big downside is that it's hard to prevent Android's low-memory killer from sacrificing XSDL when I haven't used it for awhile. I've mucked about with various solutions involving oom_score_adj and such, and that helps, but android still ends up killing my X server sometimes.
So, that's the easy method. For the more complicated method, I'm just theorizing, and this stuff may not work. You're going to need to either already have somewhat deep linux knowledge or be willing to learn Here goes.
In this post, I described how I managed to boot my tf701t after the internal memory card died a horrible death. The important bit here is that I learned how to boot any initrd/kernel combination using fastboot, and how to roll that combination into a boot.img so that the tablet always boots it. This is what you'll need to do both for the installation and for future boots into your Linux install.
First off, choose your Linux distro. I don't think you'll be able to use Mint, since, as someone pointed out above, there's no ARM build of Mint. However, there is an ARM build of Debian and Mint has the "debian edition", so maybe there is an ARM version. It may be, though, that the Mint folks only built their special stuff (Cinnamon/mate/whatever) for x86 platforms. I'd recommend Ubuntu as a compromise since I know it runs on the tf701t.
For the initial installation, put the contents of the install ISO onto an SD card -- just copying your bootable USB drive over should work. Now for the tricky bit: you'll need to pull the kernel and initrd ("ramdisk", "initial ramdisk" -- usually initrd-<something>.gz) off of the usb drive and into a working directory on a Linux laptop or desktop (let's call it the "host"). You might get away with just fastbooting this kernel/ramdisk directly. Install the fastboot package for your distro (Ubuntu has one, anyway). Connect up your tablet, put it in fastboot mode (I think that's done by booting with volume up and down held) and do 'fastboot boot <your kernel> <your ramdisk>'.
This will boot the kernel and load up the initrd, which is a tiny little linux filesystem stored in memory. The kernel runs a program called init inside the ramdisk and init takes over and boots into the actual installer. The question in my mind is how it goes about finding the ISO contents. If it searches by filesystem UUID, and there's a good chance that it does, then it will find your the ISO contents on the SD card just fine and the installer will start up.
If not, well, things will get a lot more complicated. Normally what one would do in a case like this would be to pass kernel command-line arguments (you do this in the SYSLINUX bootloader for distros like Ubuntu) telling it where to find the installation media. We can't do that because fastboot doesn't let you pass command-line arguments. Instead, you'd need to extract the initrd on the Host machine, modify the init script in some way to tell it where to find the installation media (probably /dev/block/mmcblk1p1), and then repackage it. I went into somewhat shallow detail on how to do the extract/repackage parts of this, but this is where either prior linux knowledge or a willingness to do some research comes in. Hints: gunzip the initrd, then use the cpio tool to extract it.
Okay, so let's say that you get the installer booting. The next big question is whether it's going to work at all. In theory the graphics chip inside the tf701t is supported by linux, but in practice, maybe it's only supported by a kernel module that Samsung built. Maybe you'd need to substitute the stock kernel. The next question is whether X has a module that will work with the graphics chip. But maybe even if it doesn't you can use a text-mode installer. That would at least let you get a system installed that you could then hack on to try to get X running.
So, let's say you do get linux installed (probably onto the internal SD card, /dev/block/mmcblk0). Now you want to boot it. You'll need to look into the installed system and steal its kernel and ramdisk, and get them onto the Host machine. Or maybe you could just extract them from the debian packages, since I'm not sure how you'd get things off of that internal SD at this stage. As a hint, these may well NOT be the same kernel/initrd as in the installer.
Once you've got the kernel/ramdisk, you can try to boot into them with fastboot. If that works (big if), then you'll want to be able to boot them without fastboot. That's where the 'fastboot flash:raw' command comes in. It takes a kernel/ramdisk, builds an android boot.img out of them, and flashes it to the device. From then on, the device will boot that kernel and ramdisk by default.
So, in theory this could work. The biggest potential stumbling block is whether X is going to natively support the graphics chip. If it doesn't, you may be stuck using the basic framebuffer driver, or maybe that won't even work at all. ...or you could just settle for the chroot method and be done with it
Good luck. I'm very interested to hear whether this works. I'm probably not going to try it myself since I like Android enough that I want to keep it around. I also can't walk you through this in finer detail because of external limits on my time, but I'd be happy to answer theoretical questions and specific technical questions, so long as you're willing to do the legwork of reading manpages and such I hope this works out for you!
Oh, one thing just occurred to me: skip the part in the installer about installing grub. It's not going to work on this device and may cause problems. You'll take care of the bootloader part yourself with the fastboot flash:raw command.
Click to expand...
Click to collapse
Very stubborn
Sorry I didn't respond sooner as I was away with family for Christmas.
Thank you for the guide, it was extremely helpful. I am still working on getting the device ready so I'll update as I progress.
Thanks again

Categories

Resources