Installable Linux Image for HTC Herald / T-Mobile Wing (UPDATED: Android Install) - Wing, P4350 ROM development

I've developed a kernel and base linux system suitable for installation on the HTC Herald / T-Mobile Wing series of phones. This image is for installation of a root filesystem directly to an SD storage card (no need for a root FS image). Several things don't work so far -- this is early development. But it's enough to play with. My hope is that we can use development on this as a jumping point for getting Google Android to run on the wing.
UPDATE (2/10/09):
I've added a Resources section to collect the useful information and links that have been posted here and in the other thread. I've also updated the known issues section for Android to reflect what I've discovered so far.
UPDATE (2/9/09):
I've got an updated kernel config and images for starting Android now! Android will now pull up the boot animation and begin startup. It still does not complete startup, but at least we know we've got the right stuff in the kernel now!
I've added instructions at the bottom for installing these and using them with an already set up linux system (per the first set of instructions).
UPDATE (2/7/09):
Here's some extra files you can grab if you're interested in development: (The patches don't apply cleanly yet against the linwizard kernel)
Kernel .config file I've used (against the linwizard 2.6.25 kernel): http://dl.getdropbox.com/u/198699/linux_wing/wing_config
Android diffs (between SDK android kernel and kernel.org 2.6.27 kernel): http://dl.getdropbox.com/u/198699/linux_wing/android-2.6.27.patch
Contents
Part 1: Linux Base System Installation Instructions
Part 2: Android Installation Instructions
Resources
Part 1: Linux Base System Installation Instructions:
The below instructions assume you have access to Linux and can read/write to your SD storage card.
To start out with, here's what you'll need:
Haret + default.txt + kernel (.zip, 1.4mb)
Root filesystem contents (.tar.gz, 13.1mb)
1. Repartition your SD card.
For this, you'll need to use something like Partition Magic or some other suitable partitioner (in Linux, you can use gparted to resize your Windows partition.) I recommend the following layout:
Partition 1: Primary, FAT16 or FAT32 containing your original Windows files (any size of your choosing)
Partition 2: Primary, Linux Swap, 128mb
Partition 3: Primary, EXT3, >=64mb​My linux partition is 650mb with a 1.2gb Windows partition and 128mb swap -- adjust to preference.​2. Format the swap and linux partitions.
In linux, run the following: (I assume your SD card is /dev/sdb -- adjust if different)
Code:
# sudo mkswap /dev/sdb2
# sudo mkfs.ext3 /dev/sdb3
I'm assuming the layout in step 1 as well.​
3. Mount the new Linux partition.
Run the following:
Code:
# sudo mount /dev/sdb3 /mnt
4. Copy the base linux system into the new Linux partition.
Save the root filesystem .tar.gz file from above to somewhere (I'll assume $HOME). Then run:
Code:
# cd /mnt
# sudo tar -xzvf $HOME/rootfs.tar.gz
# cd ..
5. Unmount the linux partition.
Run the following command:
Code:
# sudo umount /mnt
6. Mount the windows partition and copy the Haret executable + kernel.
I'll again assume you saved the "haret+kernel.zip" file to $HOME. Run the following:
Code:
# sudo mount /dev/sdb1 /mnt
# cd /mnt
# mkdir linux
# cd linux
# sudo unzip $HOME/haret+kernel.zip
# cd /
# sudo umount /mnt
At this stage, your Linux base system and kernel should be installed. All that's left is to remove your SD card and re-insert it into your phone, start up HaRET and enjoy.
7. Log in
Once you're booted into Linux, you can log in with:
Username: root
Password: wing​
Plug in a USB cord to log in on your laptop. If your laptop runs linux, you'll need to make sure that the usb0 network interface has the right address:
Code:
# sudo ifconfig usb0 10.100.0.2 up
The phone's address will be 10.100.0.1. You should be able to SSH or telnet in to the phone and mess around. Run "startx" to bring up X and such.
What's Working
Minimal X server capable of landscape and portrait video modes (KDrive, using the framebuffer (omapfb))
Touch screen support + calibration software (TSC2046 driver + tslib)
Console keyboard (some characters are difficult / impossible to type due to the limited key layout and driver)
USB gadget support for connecting with my laptop (I can SSH / telnet into the phone, or ssh/telnet from the phone into my laptop)
Full access to the SD card (even the Windows FAT side -- mmci-omap driver)
Known Issues
Bluetooth -- haven't been able to get a working driver, or anything to even recognize that it exists
WLAN -- same as bluetooth
GPRS / Phone -- same. There appears to be a GSM device, but I haven't been able to do anything with it.
Most of the extra buttons don't fire any events
LEDs for the most part don't work
Battery and power stats aren't available, as well as power management
No control of the backlight or display power
Sound not functional -- don't have any drivers / software compiled for sound, so I don't know if this would work or not
No real time clock (RTC) functionality
Part 2: Android Installation Instructions:
For these instructions, the recommended procedure is to copy the files you'll need to the Windows side of your SD card and install using the Linux boot system. Make sure you follow the instructions for getting a Linxu base system installed first before following this.
First off, grab the following files (Required)
Android patched kernel for the wing (same as the below kernel, but with android patches): http://dl.getdropbox.com/u/198699/android/zImage2
Android root filesystem, compiled for the wing: http://dl.getdropbox.com/u/198699/android/root.tar.gz
Android /system partition, compiled for the wing: http://dl.getdropbox.com/u/198699/android/system.tar.gz
Script for starting Android: http://dl.getdropbox.com/u/198699/android/start_android
You can also grab the kernel config file if you're interested in building the kernel (I'll have the android patch set available soon) (Optional):
Kernel .config file for the modified kernel: http://dl.getdropbox.com/u/198699/android/kernel_config
1. Copy all files to your wing
From Windows Mobile, download the 4 required files above and place them on your storage card:
root.tar.gz -- Place in /Storage Card/
system.tar.gz -- Place in /Storage Card/
zImage2 -- Place in /Storage Card/linux (overwrite the file that's already there, or re-name the original first)
start_android -- Place in /Storage Card/
2. Install Android
Run HaRET.exe to start Linux. It should boot the new kernel (you most likely won't notice a difference). Once in Linux, run the following commands (you can do it directly with the wing keyboard, or you may elect to use SSH (see instructions above) -- SSH is easer in my opinion):
Code:
# cd ../..
# mkdir android
# cd android
# tar -xzf ../mnt/windows/root.tar.gz
# tar -xzf ../mnt/windows/system.tar.gz
# cp ../mnt/windows/start_android ../bin
# chmod 775 ../bin/start_android
If using the Wing's keyboard, you'll need to use the following key mapping:
'/' --> 'Tab'
'-' --> 'Alt + x'
'_' --> 'Alt + c' (I think -- it's Alt + one of the letter keys)
Numbers -> 'Alt + <top row>'
3. Start Android
At this point, android is now installed and ready to run. Simply execute the following command to start Android:
Code:
# start_android
After a few seconds, you should see the Android startup animation appear.​Known Issues
The omapfb driver currently in use does not support page flipping, preventing the Android GUI from being displayed
Resources
WMStorage -- turn your wing into a USB SD card reader (Kudos to Kuff!): http://forum.xda-developers.com/showpost.php?p=3263023&postcount=5
Wing Service Manual (kudos to drmidnight!): http://forum.xda-developers.com/showpost.php?p=3291171&postcount=132
Google Andriod for Herald and Tmobile Wing -- the thread that started it all: http://forum.xda-developers.com/showthread.php?t=398830
Enjoy

If this is based on the linwizard kernel, have you seen the Android kernel that the linwizard crew ported over to the Wizard? It's incomplete, but it might be a good starting point for a an Android Port. When I have time tomorrow, I might try installing this.

Hmm, I actually haven't tried that. My image is based on the Polaris development tree, using htcwizard_defconfig. I added some extra drivers, like the touchscreen and SD drivers from there.
Looks like their download of the android kernel is down, unfortunately.

Hey guy, I can and will help you!
A winrar is you!
I don't know how to work with GSM module, but sound drivers should compile OK

Can't find your SD-card in the partitioning program?
As mostly your sd-card is not seen as a "drive" in Windows and in Linux, you can use the "WM5Storage"-tool to do so.
The .cab is attached. Just install it on you device, reboot and start the program without the device being attached to you computer.
Uncheck "Read-Only" and "Removable Class" en tap "Active".
Now you can connect your device (with the sd-card in it) and go on partitioning.

Hi Guys!
I'm surprised. This is the first image and way thats works on my german herald.
My linux experience is very limited. But i want help to let run Android on herald.
What are the next steps?
Morning, I will try to set up android filesystem.
Thank's a lot,
expone

Glad to hear it works for you!
I've managed to get an earlier version of Android to at least begin to start (I get the red-eye moving back and forth), but nothing happens after that.
My guess is that the video is working based on the ability to get the red-eye, but that either some other driver isn't working, or there's not enough free memory.
The image I used was a modified linwizard kernel (not the one I have here), plus a root filesystem that contained Android as an ext2 fs. I never tried with a swap partition enabled.
If we can get our hands on a copy of the android root filesystem in a form that we can mount with this image, perhaps there's a chance of running it. I saw a link somewhere about someone getting this method to work on a different phone (they copied an android root filesystem image to SD card and mounted it from linux, then started android). I'll have to dig around a bit to find it again. Expone, good luck!
Another thing is that we need lots of drivers. If we can get our hands on a spec sheet of the herald listing all the chipsets used, that might give us what we need to start getting this to work. More than likely we'll need to port (or even write) some drivers from different platforms though, as none of the drivers I compiled into this kernel seem to work for things like bluetooth and wifi. Those are probably secondary to getting android to run though -- more for getting it useful.
Just my thoughts.

darkstar62 said:
Glad to hear it works for you!
I've managed to get an earlier version of Android to at least begin to start (I get the red-eye moving back and forth), but nothing happens after that.
My guess is that the video is working based on the ability to get the red-eye, but that either some other driver isn't working, or there's not enough free memory.
The image I used was a modified linwizard kernel (not the one I have here), plus a root filesystem that contained Android as an ext2 fs. I never tried with a swap partition enabled.
If we can get our hands on a copy of the android root filesystem in a form that we can mount with this image, perhaps there's a chance of running it. I saw a link somewhere about someone getting this method to work on a different phone (they copied an android root filesystem image to SD card and mounted it from linux, then started android). I'll have to dig around a bit to find it again. Expone, good luck!
Another thing is that we need lots of drivers. If we can get our hands on a spec sheet of the herald listing all the chipsets used, that might give us what we need to start getting this to work. More than likely we'll need to port (or even write) some drivers from different platforms though, as none of the drivers I compiled into this kernel seem to work for things like bluetooth and wifi. Those are probably secondary to getting android to run though -- more for getting it useful.
Just my thoughts.
Click to expand...
Click to collapse
I saw someone with an Elfin who had a similar issue but it turns out that it just took 20 minutes for android to boot.
The full source code of Android is available online.
You're right about the drivers, though. We'll probably have to write some of our own.

Can you provide your android images?
One Idea:
Is it possible to merge this two file systems of android and this Linux File system? We get the working driver from this system and get software of android system.
What problems might occur?
@darkstar62:
Can you get me some tips where I can find the image?

You can find the android source code here:
http://source.android.com/
If you have a cross-compiling toolchain, you can build it up. As far as binary images go, I don't have one yet for the wing that works -- I'll be working over the next few days or so to get one compiled for the arch and installed.
I found instructions here for getting an earlier version of Android to run off SD card:
http://wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget
All the porting sites I've found talk about pulling the Android /system and /data partitions from the emulator. I don't think that's necessary though (especially with the Android source code out now). Browsing around, I think I may need a different toolchain compiler -- not sure mine supports EABI (see here: http://elinux.org/Android_on_OMAP#Compiler)
Hopefully tonight or tomorrow I'll be able to get my toolchain working and build a kernel. I'm going to attempt to compile Android's kernel source with their patches using bits and pieces from my kernel configuration (the one for the kernel in the howto). With any luck all will be well. Then the real fun in building Android begins.
Also, to whet your appetite, someone managed to get Android running on a phone not too dissimilar from the wing -- OMAP730 processor @ 200mHz, 64mb of RAM, SD card:
http://ohawatch.blogspot.com/2008/02/android-running-on-omap-730-200mhz.html
Also, TI showed android on our processor, the OMAP850 200mHz CPU:
http://forum.xda-developers.com/showthread.php?t=400905
So with a bit of luck I think we'll have a rather nice Android platform on our phones.

I was together with a colleague ever compiled a kernel. We had the ARM GNU / Linux compiler used.
Myself, I need more time to get more information about this topic.
Where will we discuss in the future? In this topic or in the other?

I would say, since this thread is really meant for using an installable Linux image that we keep Android-related discussion on the other thread (since that's what its topic is).
On the other hand, having all the images in one place at the front of this forum with installation instructions makes it very accessible. Perhaps we should rename this thread to something like:
"HOWTO: Multi-Boot Linux, Android and WM6 on T-Mobile Wing / HTC Herald (in work)"
I hate to turn this thread into a spin-off from the other one though...
Anyone have any thoughts?

darkstar62 said:
I would say, since this thread is really meant for using an installable Linux image that we keep Android-related discussion on the other thread (since that's what its topic is).
On the other hand, having all the images in one place at the front of this forum with installation instructions makes it very accessible. Perhaps we should rename this thread to something like:
"HOWTO: Multi-Boot Linux, Android and WM6 on T-Mobile Wing / HTC Herald (in work)"
I hate to turn this thread into a spin-off from the other one though...
Anyone have any thoughts?
Click to expand...
Click to collapse
I believe this a real good since i have little to no time to work on it.
All because of school. UGH!
I'm just glad I inspired you guys in making this happen.
So I will indeed keep the other thread open cause i would have time working on porting android to the wing in a month.

@darkstar62:
Is it possible that you provide me your kernel sources and make-project-file?
So I could even work...

The sources I've been working from come from the linwizard project:
http://linwizard.sourceforge.net
I used a git clone from their instructions using the polaris branch. It's a 2.6.25 kernel (the latest Android is based on 2.6.27...) so we'll have to either port the Android patches from 27 to 25 or port all the linwizard drivers to the android 27 kernel.
I'll post the .config file I'm using when I get home (it's on my desktop there).
A cursory look seems to indicate that it'll be easier to port the android patches to the linwizard kernel, since there's a lot less code involed (and most of the patches apply cleanly against it -- some conflicts need to be resolved though).
I got the patches by git cloning the android source code and diffing their kernel source against the kernel.org kernel of the same version. I'll post that diff when I get home too.
I've got an Android filesystem image compiled for the phone, and it seems to work (I can run the binaries from it using our working kernel -- just can't boot without the patches). So, assuming we get a working kernel, running Android should be a slam-dunk.
More to follow. If things start getting more involved, I'll probably start a sourceforge project for all this so we have some place to put all this information.

As promised, here's the .config and android patches:
Config: (rename to .config): http://dl.getdropbox.com/u/198699/linux_wing/wing_config
Android patches (against kernel.org 2.6.27): http://dl.getdropbox.com/u/198699/linux_wing/android-2.6.27.patch
I've updated the top post as well. The patches don't cleanly apply against the 2.6.25 kernel yet. Hopefully I'll be able to get that working soon.
Good luck.

Unfortunately, I don't have time, nor the crazy Linux experience to be of any help...
But I am way excited and can't wait to see what you can pull off...

Another step in the right direction -- The modified Android kernel boots, and Android will now try and start.
For some reason or another it won't complete starting -- I'm going to install some debugging tools later to try and figure out what else we need (if we're missing something). I've also noticed that Android isn't taking advantage of the swap space we have, so there may be an Android mod needed to allow that -- not sure how much it will help at this point though.
I've updated the top post with instructions on how to install the new kernel and android images to play with on your phone.
Enjoy!

I have a rooted G1. I didnt see a swap partition when I run the mount command. Let me know if you need anythhing else. I'll do my best to help out.

Yeah, not surprised. The G1 has a lot more memory than the Wing (128mb vs. 64mb if I'm not mistaken) so I doubt there'd be a need for one.
My hope was that if memory was tight for running on Android, adding a swap partition would give it some more breathing room. I guess Android wasn't designed that way though.

Related

[Wiki] Google Andriod for Herald and Tmobile Wing

{
"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"
}
This thread was created to make it possible to run and use Android on our devices.
What is Google Android?
Android is a software stack for mobile devices that includes an operating system, middleware and key applications.
Androids Architecture
We need all the help we could get to make this work
Other threads on Google Android
Google Android for Kaiser!!
Linux and Android for Vogue
Other helpful Links
Android on OMAP thanks to mswiss
http://it029000.massey.ac.nz/vogue/
This is the version that still has root access to the OS which makes it possible to edited the rom with-in the rom, thats if we get it ported first of course.
Also I dont have the tools right now to take apart the .nbh and rip it apart so if any can please do. The link is below.
DREAIMG.NBH
This popped up a week ago its the Orange France RUU update for the french G1
Could a kitchen be made out of this??
RUU_DREAM
VIA:imfloflo
This thread will remain open for any advancement of android getting ported onto the wing.
PLEASE REPORT ALL ISSUES TO THE ORIGINAL THREAD!!!
Visit darkstar62's thread (click here) for he has really gotten far with ported linux onto the wing.
darkstar62 said:
I've developed a kernel and base linux system suitable for installation on the HTC Herald / T-Mobile Wing series of phones. This image is for installation of a root filesystem directly to an SD storage card (no need for a root FS image). Several things don't work so far -- this is early development. But it's enough to play with. My hope is that we can use development on this as a jumping point for getting Google Android to run on the wing.
UPDATE (2/10/09):
I've added a Resources section to collect the useful information and links that have been posted here and in the other thread. I've also updated the known issues section for Android to reflect what I've discovered so far.
UPDATE (2/9/09):
I've got an updated kernel config and images for starting Android now! Android will now pull up the boot animation and begin startup. It still does not complete startup, but at least we know we've got the right stuff in the kernel now!
I've added instructions at the bottom for installing these and using them with an already set up linux system (per the first set of instructions).
UPDATE (2/7/09):
Here's some extra files you can grab if you're interested in development: (The patches don't apply cleanly yet against the linwizard kernel)
Kernel .config file I've used (against the linwizard 2.6.25 kernel): http://dl.getdropbox.com/u/198699/linux_wing/wing_config
Android diffs (between SDK android kernel and kernel.org 2.6.27 kernel): http://dl.getdropbox.com/u/198699/linux_wing/android-2.6.27.patch
Contents
Part 1: Linux Base System Installation Instructions
Part 2: Android Installation Instructions
Resources
Part 1: Linux Base System Installation Instructions:
The below instructions assume you have access to Linux and can read/write to your SD storage card.
To start out with, here's what you'll need:
Haret + default.txt + kernel (.zip, 1.4mb)
Root filesystem contents (.tar.gz, 13.1mb)
1. Repartition your SD card.
For this, you'll need to use something like Partition Magic or some other suitable partitioner (in Linux, you can use gparted to resize your Windows partition.) I recommend the following layout:
Partition 1: Primary, FAT16 or FAT32 containing your original Windows files (any size of your choosing)
Partition 2: Primary, Linux Swap, 128mb
Partition 3: Primary, EXT3, >=64mb​My linux partition is 650mb with a 1.2gb Windows partition and 128mb swap -- adjust to preference.​2. Format the swap and linux partitions.
In linux, run the following: (I assume your SD card is /dev/sdb -- adjust if different)
Code:
# sudo mkswap /dev/sdb2
# sudo mkfs.ext3 /dev/sdb3
I'm assuming the layout in step 1 as well.​
3. Mount the new Linux partition.
Run the following:
Code:
# sudo mount /dev/sdb3 /mnt
4. Copy the base linux system into the new Linux partition.
Save the root filesystem .tar.gz file from above to somewhere (I'll assume $HOME). Then run:
Code:
# cd /mnt
# sudo tar -xzvf $HOME/rootfs.tar.gz
# cd ..
5. Unmount the linux partition.
Run the following command:
Code:
# sudo umount /mnt
6. Mount the windows partition and copy the Haret executable + kernel.
I'll again assume you saved the "haret+kernel.zip" file to $HOME. Run the following:
Code:
# sudo mount /dev/sdb1 /mnt
# cd /mnt
# mkdir linux
# cd linux
# sudo unzip $HOME/haret+kernel.zip
# cd /
# sudo umount /mnt
At this stage, your Linux base system and kernel should be installed. All that's left is to remove your SD card and re-insert it into your phone, start up HaRET and enjoy.
7. Log in
Once you're booted into Linux, you can log in with:
Username: root
Password: wing​
Plug in a USB cord to log in on your laptop. If your laptop runs linux, you'll need to make sure that the usb0 network interface has the right address:
Code:
# sudo ifconfig usb0 10.100.0.2 up
The phone's address will be 10.100.0.1. You should be able to SSH or telnet in to the phone and mess around. Run "startx" to bring up X and such.
What's Working
Minimal X server capable of landscape and portrait video modes (KDrive, using the framebuffer (omapfb))
Touch screen support + calibration software (TSC2046 driver + tslib)
Console keyboard (some characters are difficult / impossible to type due to the limited key layout and driver)
USB gadget support for connecting with my laptop (I can SSH / telnet into the phone, or ssh/telnet from the phone into my laptop)
Full access to the SD card (even the Windows FAT side -- mmci-omap driver)
Known Issues
Bluetooth -- haven't been able to get a working driver, or anything to even recognize that it exists
WLAN -- same as bluetooth
GPRS / Phone -- same. There appears to be a GSM device, but I haven't been able to do anything with it.
Most of the extra buttons don't fire any events
LEDs for the most part don't work
Battery and power stats aren't available, as well as power management
No control of the backlight or display power
Sound not functional -- don't have any drivers / software compiled for sound, so I don't know if this would work or not
No real time clock (RTC) functionality
Part 2: Android Installation Instructions:
For these instructions, the recommended procedure is to copy the files you'll need to the Windows side of your SD card and install using the Linux boot system. Make sure you follow the instructions for getting a Linxu base system installed first before following this.
First off, grab the following files (Required)
Android patched kernel for the wing (same as the below kernel, but with android patches): http://dl.getdropbox.com/u/198699/android/zImage2
Android root filesystem, compiled for the wing: http://dl.getdropbox.com/u/198699/android/root.tar.gz
Android /system partition, compiled for the wing: http://dl.getdropbox.com/u/198699/android/system.tar.gz
Script for starting Android: http://dl.getdropbox.com/u/198699/android/start_android
You can also grab the kernel config file if you're interested in building the kernel (I'll have the android patch set available soon) (Optional):
Kernel .config file for the modified kernel: http://dl.getdropbox.com/u/198699/android/kernel_config
1. Copy all files to your wing
From Windows Mobile, download the 4 required files above and place them on your storage card:
root.tar.gz -- Place in /Storage Card/
system.tar.gz -- Place in /Storage Card/
zImage2 -- Place in /Storage Card/linux (overwrite the file that's already there, or re-name the original first)
start_android -- Place in /Storage Card/
2. Install Android
Run HaRET.exe to start Linux. It should boot the new kernel (you most likely won't notice a difference). Once in Linux, run the following commands (you can do it directly with the wing keyboard, or you may elect to use SSH (see instructions above) -- SSH is easer in my opinion):
Code:
# cd ../..
# mkdir android
# cd android
# tar -xzf ../mnt/windows/root.tar.gz
# tar -xzf ../mnt/windows/system.tar.gz
# cp ../mnt/windows/start_android ../bin
# chmod 775 ../bin/start_android
If using the Wing's keyboard, you'll need to use the following key mapping:
'/' --> 'Tab'
'-' --> 'Alt + x'
'_' --> 'Alt + c' (I think -- it's Alt + one of the letter keys)
Numbers -> 'Alt + <top row>'
3. Start Android
At this point, android is now installed and ready to run. Simply execute the following command to start Android:
Code:
# start_android
After a few seconds, you should see the Android startup animation appear.​Known Issues
The omapfb driver currently in use does not support page flipping, preventing the Android GUI from being displayed
Resources
WMStorage -- turn your wing into a USB SD card reader (Kudos to Kuff!): http://forum.xda-developers.com/showpost.php?p=3263023&postcount=5
Wing Service Manual (kudos to drmidnight!): http://forum.xda-developers.com/showpost.php?p=3291171&postcount=132
Google Andriod for Herald and Tmobile Wing -- the thread that started it all: http://forum.xda-developers.com/showthread.php?t=398830
Enjoy
Click to expand...
Click to collapse
Thanks
EDIT: Added darkstar62's most current update (2/10/09)
EDIT: Added Wing Linux 0.3 pre3 instructions. Thanks to darkstar62
Current Status
Bluetooth -- haven't been able to get a working driver, or anything to even recognize that it exists
WLAN -- same as bluetooth
GPRS / Phone -- same. There appears to be a GSM device, but I haven't been able to do anything with it.
Most of the extra buttons don't fire any events
LEDs for the most part don't work
Battery and power stats aren't available, as well as power management
No control of the backlight or display power
Sound not functional -- don't have any drivers / software compiled for sound, so I don't know if this would work or not
No real time clock (RTC) functionality
Can anyone take photos of these stages.
I would love to post them here.
Thanks
Good idea. Wondered when someone will come up with it....BUT the main problem will be to port the GSM over...think until now they didn´t succede - did they?
Good luck
i think the first thing we should look at is porting linux over to the wing
then go from there
BUT another thing that i don´t understand...correct me...
WE can only run Android like a VM on a PC.
First XDA boots WM6 and then starts an image from android...so it is more like an application running under WM??
And will there be a time where we can delete WM???
thx
we can delete WM when we have a full set of drivers for android
And linux- i've never understood people's compulsion for linux. Sure it's opensource and therefore free, but that does not automatically make it better.
fzzyrn said:
we can delete WM when we have a full set of drivers for android
And linux- i've never understood people's compulsion for linux. Sure it's opensource and therefore free, but that does not automatically make it better.
Click to expand...
Click to collapse
True true free doesnt make it better but atleast it gives us varieties...instead of just WM we could linux(android) also.
papamopps said:
Good idea. Wondered when someone will come up with it....BUT the main problem will be to port the GSM over...think until now they didn´t succede - did they?
Good luck
Click to expand...
Click to collapse
yeah i think its in that stage for now but imagine if we could make a very Clean rom and cook android into it and make it start at startup we could have it running and a decent speed
I think we can have android running as soon as we complete the "linux kernel" part of the dev roadmap along with the runtime. At this point, android would be "running" but not functioning
alright cool, you guys go work on the linux kernel and ill go.... drink this soda
fzzyrn said:
I think we can have android running as soon as we complete the "linux kernel" part of the dev roadmap along with the runtime. At this point, android would be "running" but not functioning
Click to expand...
Click to collapse
how could we get this started? im willing to try anything right now
you would probably need a coder. I haven't read much about android, but you could probably port over WM6 drivers (depending on programming language?)
fzzyrn said:
you would probably need a coder. I haven't read much about android, but you could probably port over WM6 drivers (depending on programming language?)
Click to expand...
Click to collapse
I don't think that that will work. I think that you need to start with the basic linux drivers and see if you can port them to mobile.
And yes, you would need a coder for that. And sorry to say, that isn't me. But, it t-mobile gets the diamond/whatever they're going to call it, I think that I will be first in line.
N3xt2N0N3 said:
yeah i think its in that stage for now but imagine if we could make a very Clean rom and cook android into it and make it start at startup we could have it running and a decent speed
Click to expand...
Click to collapse
Perfect reason for an Just2Clean variant! lol
WM6 are hardly running on our 200 MHz OMAPs and you want to put another OS on top of it? Laughing out loud.
CommZ said:
WM6 are hardly running on our 200 MHz OMAPs and you want to put another OS on top of it? Laughing out loud.
Click to expand...
Click to collapse
are you serious? hardly running? its sometimes (quite often to be honest) faster than qualcomm 400mhz... (most of users are still believers of MHZ GOD... ).
I know how fast my machine is. It is often annoyingly slow.
these days, frequency doesn't matter as much as FSB does!
But anyway, you would definitely have to write your own drivers, which makes android porting more the responsibility of the manufacturer than of the end user

Ubuntu 11.04 nauty running on Gtab

SUCCESS. I now have Ubuntu 11.04 booting on the Gtab. Using Pershoots kernel and files from the Vega folks, we now have touch screen working. Wireless is not up yet, and have not tested sound.
Thread from the Vegan folks:
http://android.modaco.com/content/a...-com/332887/ubuntu-linux-11-04-natty-on-vega/
From vega get the boot intrd image and the vegan root files.
http://www.adebenham.com/vega/
Follow the instructions to copy and build Pershoots kernel. Edit drivers/video/console/fbcon.c and searching for 'navy' and uncomment the line. This will give you the boot messages on the screen.
Formant the card to ext3. Unzip the vega_root file to an micro sd card of 4GB or better. use unzip -vxf vega_root.tgz
This will take awhile.
Edit /etc/fstab on the card and change mmcblk3p2 to mmcblk2p1
Copy the following files from the staging directory that you made after building Pershoots kernel:
sudo cp location-of-staging-dir location-sd/boot
sudo cp -Rp location-of-staging-dir/system/lib/modules/ location-sd/lib/modules/
Command to build the boot image:
./mkbootimg --kernel zImage --ramdisk initrd.img-2.6.32-custom --cmdline "root=/dev/mmcblk2p1 rootdelay=5 [email protected] [email protected] vmalloc=192M video=tegrafb console=tty0,115200 fbcon=rotate:1 fbcon=font:VGA8x8 usbcore.old_scheme_first=1 cpuid=200102 devicetype=1002 btmac=9c5ed6131a00 tegraboot=nand mtdparts=tegra_nand:[email protected](misc),[email protected](recovery),[email protected](boot),[email protected](system),[email protected](cache),[email protected](bootbmp),[email protected](logodata)" -o boot.img
Once you have the boot image, grab a copy of the boot-karmac.zip file. Replace boot.img in the zip file with the one that you created and rename the zip file.
Power down the Gtab, if need be. Put your micro sd card in that has the ubuntu files. Boot into CWM and go to mounts and mount the usbdrive, and connect to your computer. Copy the zip file that you made to the root of the usbdrive. Unmount the usbdrive from your computer and then umount in CWM. Now use CWM to zip the file into the Gtab and reboot.
You should see text scroll by and and it should boot into Ubuntu.
If you do the updates, it will cause problems with libgc. If you do the updates, then log into a terminal window and do sudo dpkg -i /root/glibc/*.deb
This will restore the glibc files needed.
3-23-11 Update
The latest image from the Vega folks fails due to nvrm_daemon. It causes you to loose the external sd card that your booting from. I'm using the first version that they posted.
I've gotten wireless to see AP's. I had to use the bcm4329 driver from Chenglu.
http://forum.xda-developers.com/showthread.php?t=892308
The Gnome nm-applet does not run, as it has issues with libappmenu.so, so I've not been able to test using it to connect to any AP.
Slow headway.
NMCBR600 said:
SUCCESS. I now have Ubuntu 11.04 booting on the Gtab. Using Pershoots kernel and files from the Vega folks, we now have touch screen working. Wireless is not up yet, and have not tested sound.
Click to expand...
Click to collapse
Interesting! Could you please clarify one thing:
> Unzip the vega_root file to an micro sd card of 4GB or better. Formant the card to ext3. use unzip -vxf vega_root.tgz
Do you reformat the sdcard before or after unzip the files to the card? (I thought formating would destory all content of the card)
THANKS!
Format before unzipping the files.
Awesome
Thanks for the great work
obviously we would need wireless (wifi) to make it all useful but the touch screen working is awesome
do you know if this will be able to run or support any of the following: Now or in the Future
1 usb dvd or cd drives- will they be able to be mounted and or even read/writable
2 flash- will flash video be able to be played in browser etc.
3 wine- would wine be able to be installed and used
I do not know how much of these are possible or impossible but all of them would be great
Thanks again
I'm new to the G tab and haven't had any experience at all with ubuntu, but I always want the latest and greatest thing in terms of tech.
Having said that I'm wondering just what are the possibilities of having ubuntu on the G tab, what can be done with it, how will it effect what I can do with the tablet once it is complete?
Thanks in advance.
doihaveto said:
Thanks for the great work
obviously we would need wireless (wifi) to make it all useful but the touch screen working is awesome
do you know if this will be able to run or support any of the following: Now or in the Future
1 usb dvd or cd drives- will they be able to be mounted and or even read/writable
2 flash- will flash video be able to be played in browser etc.
3 wine- would wine be able to be installed and used
I do not know how much of these are possible or impossible but all of them would be great
Thanks again
Click to expand...
Click to collapse
To add cdrom support, you need to add the modules to the kernel. The cdrom drive will need external power as the usb port does not supply enough power to run external hd or cd drives.
Flash -- if there is an arm version for linux
wine -- would have to compile the source code for arm
Roxxas049 said:
I'm new to the G tab and haven't had any experience at all with ubuntu, but I always want the latest and greatest thing in terms of tech.
Having said that I'm wondering just what are the possibilities of having ubuntu on the G tab, what can be done with it, how will it effect what I can do with the tablet once it is complete?
Thanks in advance.
Click to expand...
Click to collapse
Limited by your imagination and needs.
will wicd work for wireless
in this post about ubuntu on the gtablet
http://forum.xda-developers.com/showthread.php?t=894960
the wireless works only with wicd
would this maybe allow wireless to work in this port
At this time, the driver is not coming up. Running ifconfig does not show wlan0 at all, so I know I have an issue with driver. It does see my Verizon usb modem and my usb ethernet unit. With the ethernet unit, I can get online and surf. Currently, openoffice/librioffice are not available as there are dependencies between the two that cannot be resolved due to missing modules. The camera is not seen and I do not have any audio or power management.
I'll be working on this as I can over the weekend.
Using a 2.6.32 kernel with natty might not be the best idea.. 2.6.38 also has broadcom drivers.. this is great and all. but whats preventing us from stepping away from the android kernel? In specific if you can..
I've pulled the nvida 2.6.36 tree but if fails to compile. Complaints about asm using odd registers cause the compile to fail. At this time, 2.6.32 tree has drivers for the hardware. If I can get the 2.6.36 to compile, I'll try it.
Right now, sound, battery monitoring, camera are not working. Buttons on the side and the volume up/down are also not working. This is a starting point.
Forget about wine. Wine is an API translation layer, program loader plus libraries, it does not emulate x86, you are supposed to have it in the hardware. Wine on Gtab with ARM CPU will not do you any good, unless your windows applications are already compiled under ARM. And for that to happen you will have to wait until Microsoft comes up with windows on ARM first
Try the latest git commit of 2.6.38 - its on rc8 fwiw.. I run it on my server (heh).. I also compiled it using a modded pershoot defconfig (in a silly attempt to see if I could be cooler than 2.6.36 xoom folk - and to get the new cpu stuff)
It did not boot android.... but it did compile with no errors. I think I disabled wifi tho.. so yeah, disable as much as you can... get a basic system running on 2.6.38, then start building up
is there any progress here
just checking to see if there is any progress with wireless and or the kernel and drivers being used, is anyone trying this yet themselves besides op
i find this topic very interesting. I'd love to have this fully functional
I have not had luck with wireless. It looks like there is something missing the the vega image. I have gotten the wireless driver to load, but iwlist scan does not return any AP's. I pulled one of the 11.04 arm images for TI boards and tried to use the kernel that I built. I do not get a graphical screen and I cannot log in at a command prompt as I do not have a root password for that load. I've just built a generic 2.6.38 kernel to test on that image to see what happens.
I'm watching the vega forum on what they are doing.
I'm finding moving from working on x86 processors to arm interesting. As I get more information, I'll update the instructions. I want to get this running so I can use this on at a meeting in the first part of April.
get this running and expect a donate from me! i love android but compared to ubuntu it just doesnt cut it. i know you are using 11.04, but what ever happened to the ubuntu/kubuntu 9.04 (i think) MID Edition? Wasnt it made for arm? Did they stop development on this version?
Also, this may be a bit much to ask but could we get a pre-made image so we can test progress so far?
You guys are great! Keep up the good work!
edit: fixed my grammer
At this time I don't have a site to upload images to. I'm wanting to get the wireless sorted out, but as I make headway, I'll update the information that I posted on the first page. The vegan folks updated their vega image, but I cannot get it to boot. I get errors about inode from the sd card, but I know that the sd card checks out fine with fsck, so I've dropped back to their first image. I'm beginning to think that part of the problem is the modified driver for our wireless chip is different from the stock b43 driver in linux.
Headway
Update at the bottom of post #1. Wireless is working. Also, I tested an external CD drive and it was seen. The usb port did not supply enough power to spin the disk in the drive and I did not have an external power supply with me.
This is great,but....
I am in no way knowledgeable of how to compile all this together, can we get more intensive instruction on how to get this running or can anyone get this done in a way that we can simply get it going by the same methods it takes to get this version running:
http://forum.xda-developers.com/showthread.php?t=894960
download the two files extract files to the sd card and flash the kernel that easy.
if not I may never get this up, I would appreciate it greatly
I could provide a drop box account to share the files if it is needed to get them available online just let me know
thanks

[Q&A] How to build/modify your own linux image for eMMC install Debian sample inside

[Q&A] How to build/modify your own linux image for eMMC install Debian sample inside
This thread is for help and support with all linux distributions instalable in eeepad asus transformer. I will explain how to build your own image file or modify existing one in order to use lilstive OLife script.
As ubuntu is the most popular distro, please, all de questions related with ubuntu post them in lilstevie's thread.
You can install any distribution with arm architecture support, but you'll need to make some tweaks in the image in order to work propperly. As my experience in linux is most of it related with debian is the distro i will give the best support, but i'll try to answer every question you ask.
I've chosen debian armHardFloat port instead of debian armel fore many reasons, you can read about this port here:
http : //wiki. debian.org/ArmHardFloatPort
This port is still young so right now there are packages still unaviable to install but they are entering in wheeze day to day. If you preffer to use armel instead or armhf you can always do, you will loose improvement but you will have (at the time of writting this) less packages aviable. In the future (not far away) it will be the best option.
Building your own image:
There are many ways to create a image file but because we are going to need qemu in order to debootstrap the instalation the easiest way to create it is with qemu-img
Code:
qemu-img create debian-armhf.img 400M
I have only given 400M of space because is going to be a minimal instalation without desktop enviroment, it could be smaller but, just in case, that's the size i've chosen. The transfer with OLife it will be faster if the image is smaller.
When you boot for your first time you will find an error because there is no valid MSDOS partition table, this is ok, nothing happens because of that but if you want to avoid it use fdisk to create a partition table
Code:
fdisk debian-armhf.img
we need now to give format to the filesistem:
Code:
mkfs.ext4 debian-armhf.img
It will ask if you really want to do because it's not an ordinary partition and you have to type "s" to proceed
Now whe have ready the image and we have to mount it in some folder to install debian in it:
Code:
mount -o loop debian-armhf.img debian
asuming debian as the created folder for that.
We are ready to debootstrap de instalation:
Code:
debootstrap --verbose --arch armhf --foreign --include=btrfs-tools,locales,kbd,wpasupplicant wheezy debian http://ftp.de.debian.org/debian
this will make the first step to install wheezy armhf, --foreing parameter is because the target architecture is different from the host one and it's going to stop before de second-stage, it will include the packages btrfs-tools locales and kbd, you can add as many as you want but it will be always faster if you install them manually once installed in the transformer. I didn't install ssh server because i have a dock, but if you don't have it will be needed to complete the instalation with a remote shell, but you can also install packages later with chroot after the second stage.
In order to be able to chroot we will need qemu-user-static, with armhf it's needed 1.0 version with armel it's not necesary, it can be any version not too old. Also if you have an i386 system it's recomendable to install an amd64 kernel to do chroot or debootstrap will fail configuring cron. Actually i think in this sample image there is anacron instead of cron because there was an issue i thought it was related with that but later twb found out the problem was another different and now it's solved.
we will add qemu-arm-static to the instalation to be able to chroot
Code:
cp /usr/bin/qemu-arm-static debian/usr/bin/
we chroot to the new enviroment:
Code:
chroot debian
and execute the second stage of debootstrap:
Code:
./debootstrap/debootstrap --second-stage
After finish the instalation we will set the root password
Code:
passwd
and now it's ready, you can make tweaks, install packages (as ssh if you need it) or whatever you want, but you will have to add a repository to /etc/apt/sources.list in order to install any packages.
In this image and debootstrap proccess i've used german repositories because are the fastest for me, but you can use another one, right now it's neede also experimental repository to have working touch screen, but as soon xserver-xorg-input-evdev with full multitouch support enters sid as it won't be necesary
example of /etc/apt/sources.list
Code:
http://ftp.de.debian.org/debian unstable main contrib non-free
http://ftp.de.debian.org/debian experimental main contrib non-free
I have already installed in this image necesary packages for that and experimental repositories won't interfiere unless you pass the parameter for apt-file so you can forget about this if you want, but if you are building your own image apt-get install -t experimental xserver-xorg will do the work.
we have ready now our image but it need some files and tweaks to make everithing work in the eepad.
From here you can apply this to any arm image you want to test.
(all the files needed are in the attached file files.tar.gz in the rigth folders)
we need to add modules and firmware, i've extracted them from lilstive ubuntu.img
strictly necesary are:
Code:
/lib/firmware/nvram.txt
/lib/firmware/brcm/*
but you may need another ones if you are going to use external hardware, that's on you.
there are also two folder in /lib/modules one is for the asus kernel and the other one for chrome os kernel, i suggest to add both of them because it's just a bit space and you will be able to use the image with both kernels.
In order to make wifi work i've made /etc/modprobe.d/options.conf file with some parameters found in one of the threads of lilstevie and /etc/modules with the modules to load.
You will also need to configure /etc/network/interfaces and /etc/wpa_supplicant/wpa_supplicant.conf all this files are in the attached files.tar.gz but wpa_supplicant.conf is not because it depends of each ones wifi, but there is a wpa_supplicant.conf.example and you can always google for it a bit. If you don't have a dock make sure you do this correctly or you won't be able to connect to the internet and ssh device to continue instalation easily
if you want to be able to use adb (wich is really usefull if you for example did not correctly configure wpa_supplicant) you will have tu add also "/usr/bin/adbd" and /etc/init.d/adbd"
I've modify the original init.d script to avid LSB tags missing warning error, it's not really necesary rsyslog as previous service started but ... it works.
In order to make adb service start automatically we will execute (inside the chroot of course)
Code:
update-rc.d /etc/init.d/adb defaults
This may be different in non debian based distributions, but you can always ln manually to rcX.d
Finally, there is the "bug" it has made me think something was wrong and change cron with anacron, when you boot it appears to stop booting starting a service (cron, dbus, deppending what you have installed) but it isn't you can login pressing ctrl + alt + F2 (touchpad key),
we think it's related with the bootloader and default tty as 7 or something like that.
As workaround add in /etc/rc.local "chvt 1" (without quotes) just before exit 0 line
Because there is not oem-installation like in ubuntu after the first boot there are a couple of things to do, we have to resize the image to fit the partition, change password, configure locales and xorg keyboard-layout (if you have more than one locales) add an user and include in relevant groups and maybe more in the future so i've made a postinstalation.sh script included in /usr/bin:
Code:
#!/bin/sh
echo "Making online resize of the root partition"
partition=`mount -l | grep " / " | awk '{print $1}'`
resize2fs $partition
echo "changing root password"
passwd
echo "configure locales"
dpkg-reconfigure locales
echo "configure xserver keyboard layout"
dpkg-reconfigure keyboard-configuration
echo "configure localtime"
dpkg-reconfigure tzdata
echo "Please anter a user name"
read username1
adduser $username1
echo "adding user to relevant groups"
adduser $username1 audio
adduser $username1 video
adduser $username1 netdev
adduser $username1 plugdev
adduser $username1 bluetooth
adduser to bluetooth will fil because there is not installed any bluetooth manager so there is not bluetooth group yet, and remeber tu use OLife script to inject bluetooth firmware in order to have bluetooth working.
And that's it i think i haven't miss anything but i will update this when needed. You can now install your image with lilstevie's OLife script, you will have to rename it to ubuntu.img from now. If everithing went ok you can now install the desktop enviroment you prefer, on screen keyboard or whatever you like.
I haven't test network manager and i've only tested kde-netbook, but there are still broken dependencies and it's a bit slow. This will improve as soon as we have hardware acceleration (if we ever do), and armhf port goes ahead.
Lilstevie is going to host my images and maybe OLife script will have more options in the future, but from now you can download from here:
http://dl.dropbox.com/u/60048492/debian-armhf.img.tar.gz
(md5sum inside)
http://dl.dropbox.com/u/60048492/files.tar.gz
All credits and many thanks for lilstevie and twb for all the help they gave me.
I will apreciate any correction not only in this process but also in my english grammar/ortography
Please, any mod or admin can correct the word modufy in the title?
reserved
Thanks
Following your instructions, I can finally replace ubuntu with debian, which resides my home laptops, office desktop, and now, on my tablet as well. Unfortunately debian has no "onboard" package... and it's rather inconvenient without a dock.
Thanks anyway for bring debian to this tablet.
boseliquid said:
Following your instructions, I can finally replace ubuntu with debian, which resides my home laptops, office desktop, and now, on my tablet as well. Unfortunately debian has no "onboard" package... and it's rather inconvenient without a dock.
Thanks anyway for bring debian to this tablet.
Click to expand...
Click to collapse
What has onboard that haven't other onscreen keyboards? i haven't ever tried onboard and i just tried a couple of onboard keyboards in debian, i also did managed to load it automatically in login screen, But i did never went deeper, like "only appear if the focus is in textbox" or something like that.
Anyway i has to be easy to rebuild that package for debian or just install it from ubuntu. What do you exactly need?
onboard onboard
Onboard has keys that simulate middle-click and right-click of mouse. I tried to install ubuntu's deb file, but runs into problem with dependencies. Compiling the source on the tablet led to error related to gdk/gdk.h which i couldn't figure out how to resolve.
Onboard respond better than others, e.g. xvkbd and florence both have run-away key presses, i.e. a string of letters appear even for a quick single tap on a key.
Also, onboard integrates nicely with lightdm. I used xdm plus florence to log in (the screen keyboard hides most of xdm's GUI).
With fluxbox, debian seems faster than ubuntu+fluxbox on the tablet. That's why onboard is nice since fluxbox menu requires right-clicking on the desktop. Fortunately, fluxbox keys are easily configurable, so i still can shutdown by pressing some key combination.
Hopefully lilstevie has the time to work on hardware acceleration, which would then allows to dump android completely.
boseliquid said:
Onboard has keys that simulate middle-click and right-click of mouse. I tried to install ubuntu's deb file, but runs into problem with dependencies. Compiling the source on the tablet led to error related to gdk/gdk.h which i couldn't figure out how to resolve.
Onboard respond better than others, e.g. xvkbd and florence both have run-away key presses, i.e. a string of letters appear even for a quick single tap on a key.
Also, onboard integrates nicely with lightdm. I used xdm plus florence to log in (the screen keyboard hides most of xdm's GUI).
With fluxbox, debian seems faster than ubuntu+fluxbox on the tablet. That's why onboard is nice since fluxbox menu requires right-clicking on the desktop. Fortunately, fluxbox keys are easily configurable, so i still can shutdown by pressing some key combination.
Hopefully lilstevie has the time to work on hardware acceleration, which would then allows to dump android completely.
Click to expand...
Click to collapse
Ok, i'll give it a look and if i can i will build a debian package in order to include it in the image
I've managed to build a couple of packages for onboard. You can't imagine how much crap it's in building dependencies, mono, unity and so many things, so i've removed appindicator dependency because i don't think it's going to be really necesary. The true is that i don't have so much time right now so,
Can you please test it and tell me if you have any problem? I can try to rebuild another older version in order to avoid unity crap and those things without messing the code, but if this works well it's the eassiest solution.
You have to install both packages, the other dependencies are instalable from debian oficial repository, at least i haven't got any problem installing it in my building environment.
http://dl.dropbox.com/u/60048492/onboard_0.95.1-1_all.deb
http://dl.dropbox.com/u/60048492/python-virtkey_0.60.0-1_armel.deb
arch of python-virtkey is armel instead of armhf
Almost there... but obtained the following error msg:
Unpacking onboard (from onboard_0.95.1-1_all.deb) ...
dpkg: dependency problems prevent configuration of onboard:
onboard depends on python-virtkey (>= 0.60.0); however:
Package python-virtkey is not installed.
onboard depends on python-gconf; however:
Package python-gconf is not installed.
dpkg: error processing onboard (--install):
dependency problems - leaving unconfigured
Thanks again.
boseliquid said:
Almost there... but obtained the following error msg:
Unpacking onboard (from onboard_0.95.1-1_all.deb) ...
dpkg: dependency problems prevent configuration of onboard:
onboard depends on python-virtkey (>= 0.60.0); however:
Package python-virtkey is not installed.
onboard depends on python-gconf; however:
Package python-gconf is not installed.
dpkg: error processing onboard (--install):
dependency problems - leaving unconfigured
Thanks again.
Click to expand...
Click to collapse
python-virtkey is provided in my previous post, just install it, after that
#apt-get install -f
will resolve and install automatically pending dependencies.
I've already tried and it works.
EDIT: i have been working in the suppose you are runnin debian armel and not armhf
To get bluetooth working, you need an armhf build of brcm_patchram_plus.
Thankfully it's GPL'd, so here's a copy.
Hi,
I'm having a bit of trouble getting Debian on my TF101 using OLiFE.
I'm forced to use the android/Ubuntu dual-boot option, but that's another story.
Basically, there's a kernel panic and I can't see the entire screen without it rebooting one second later. I am able to flash my TF101 properly without bricking (it's a B60), but everytime I boot it up as my default OS, I get that rebooting screen.
NothingMuchHereToSay said:
Hi,
I'm having a bit of trouble getting Debian on my TF101 using OLiFE.
I'm forced to use the android/Ubuntu dual-boot option, but that's another story.
Basically, there's a kernel panic and I can't see the entire screen without it rebooting one second later. I am able to flash my TF101 properly without bricking (it's a B60), but everytime I boot it up as my default OS, I get that rebooting screen.
Click to expand...
Click to collapse
Kernel panic kinda implies the problem is with the kernel, not with Debian. If you're using the 3.1 kernel, try the 2.6 one by lilstevie. Whichever kernel you're using, you're better off seeking help in one of the kernel-specific threads.
rdnetto said:
Kernel panic kinda implies the problem is with the kernel, not with Debian. If you're using the 3.1 kernel, try the 2.6 one by lilstevie. Whichever kernel you're using, you're better off seeking help in one of the kernel-specific threads.
Click to expand...
Click to collapse
Could or couldn't it may also be a problem with initramfs and boot parameters. I now because i experienced it. So if you give us more information, better, try to record a video of the bootloop and pass it slowly to see the error, i did that and it worked for me
Franks Tools-new modified Ubuntu install
Hello i dont know if this is right thread,i like to ask you advanced users for some help.I wanna install ubuntua via new modified Franks tools by kenshin,released few days ago,i cannot find exact answer what i need to progress.
My questions are: How can i made nvflashable files system.img boot.img recovery.img and others to use franks tools? how to obtain these images?
2.) and if i will use those images that can be found here on forum can i then just flash for example Revolution HD rom? ,or does it destroy my installation of ubuntu via franks tools?
because i know that there is little play with partitions so i am not sure if i can flash any rom after use of franks tools dual boot option.thank you for help
shaola said:
Could or couldn't it may also be a problem with initramfs and boot parameters. I now because i experienced it. So if you give us more information, better, try to record a video of the bootloop and pass it slowly to see the error, i did that and it worked for me
Click to expand...
Click to collapse
I did everything stock and did exactly what you said to do for Debian, though I used the armel architecture and the adb wouldn't work with an error.
By everything stock, I mean that I didn't alter anything from the OLiFE folder except adding the ubuntu.img file.
NothingMuchHereToSay said:
I did everything stock and did exactly what you said to do for Debian, though I used the armel architecture and the adb wouldn't work with an error.
By everything stock, I mean that I didn't alter anything from the OLiFE folder except adding the ubuntu.img file.
Click to expand...
Click to collapse
The original kernel from OLiFE didn't work for me - I had a boot loop. Try manually compiling the lilstevie kernel, or using a kernel from Jhinta's kernel thread.
The packed kernels (CWM zips) for Ubuntu will work exactly the same under Debian. (or at least in the direct mount case - I don't know about loop mount)
i can't get wifi up ... could someone help?
it is shown in iwlist wlan0 scan but i can't find an network ...
while boot it sends many intervals and abort this progress with givin' up.
i just copied li/firmware file from olife.img und files from this thread over it ...
anyone could help please?
NoDiskNoFun said:
i can't get wifi up ... could someone help?
it is shown in iwlist wlan0 scan but i can't find an network ...
while boot it sends many intervals and abort this progress with givin' up.
i just copied li/firmware file from olife.img und files from this thread over it ...
anyone could help please?
Click to expand...
Click to collapse
what are you uing to scan? this driver ony supports wpasupplicant, not iw nor iwconfig
hi,
i installed the ubuntu image with olife on my transformer. i don't like ubuntu very much, i prefer debian which i run debian on my computer as well. i stumbled over this thread so i wondered what's the status of debian on our transformer.
can anyone tell me whats currently working.
hanswurschtus said:
hi,
i installed the ubuntu image with olife on my transformer. i don't like ubuntu very much, i prefer debian which i run debian on my computer as well. i stumbled over this thread so i wondered what's the status of debian on our transformer.
can anyone tell me whats currently working.
Click to expand...
Click to collapse
The same as in ubuntu. But you may need some tweeks. Depends of the kernel you are using. nvidia has released also a beta of the nvidia drivers for armhf and not only armel so you may use armhf or armel with jintha's kernel and have almost everithung working.

[GUIDE] Ubuntu in a chroot on the Galaxy S4 - now with Native Booting!

Notice (4/16/14): I'm no longer here. I've said "goodbye" to AT&T and their locked bootloader schemes. I'm voting with my wallet - I've sold my I337 and switched to T-Mobile. My apologies to the community, but you're now on your own here.
Intro/About/Requirements:
This thread started as a guide for people who wanted to run Ubuntu in a chroot, and then connecting to it locally with a VNC client. This method has been used countless times on other devices, with many thanks to @zacthespack and his his group, LinuxonAndroid. Unfortunately, this method did not work out-of-the-box on my device, so I tweaked things to work with the Galaxy S4 and posted them here in this thread.
However, the most people immediately noticed that with this method the performance is not great, and some applications can't work in a headless environment. With a comment made by zackthespack, I began researching what it would take to get Ubuntu to write directly to the device's framebuffer. After a few months, I not only managed to accomplish this, but also developed a way to get the Galaxy S4 to boot directly into Ubuntu. As far as I have seen, both of these are a "first" for this handset.
All of these methods require root. The VNC Chroot does not require a custom kernel, but the other methods require a custom-built kernel. For the I337 (AT&T) handset, this can pose a problem if you have bootloaders that are MF3+. If you're using MDB/MDL bootloaders still, you shouldn't have a problem with this and you can Loki the custom kernel without issue.
Depending on your ROM and/or Kernel, you may also need a new version of BusyBox installed, even for the VNC method. You'll find a few apps on the Play Store that can do this for you. Beware that some of them are not easily reversible (such as TinyBox), so if you're stuck on MF3 with no way to create/restore a nandroid/system backup, you should be careful.
Click to expand...
Click to collapse
Disclaimers:
Following this guide and/or flashing anything I've provided to your device is your own responsibility. If something breaks, you break your device, or something explodes, I can't be held liable (I'll help correct any situations you may put yourself in, however). I claim no rights to any proprietary software or intellectual property included in this post or the packages contained herein. By using any of this software, you agree to whatever licenses/agreements that the creators may have included with their software. If you use any of this stuff in your own project, please provide credit where credit is due. For example, if you take my u.sh script and adapt it to some new device (i.e. Galaxy S 5), please at least mention where it came from.
Click to expand...
Click to collapse
VNC Chroot Method (original):
This method is loosely based on this thread for the Galaxy S3 and the ubuntu.sh script there. It didn't work for the S4, but I've made several tweaks to it, simplifying it a ton, and otherwise getting it to work perfectly on my S4. I've tried this using my AT&T Galaxy S4 (SGH-I337) on both the MDL build and the MF3 build - both seem to work great.
Instructions:
Download the Ubuntu 13.04 Small v1 image here.
Create a folder on your sdcard labeled "ubuntu" by whatever means you want to.
Extract the ubuntu.img from your downloaded zip into this folder.
Download my version of the ubuntu.sh and place it on the root of your sdcard.
Open the script in a text editor and read through it. Never run a script like this on your android without first knowing what it does - especially when the author is telling you that you need root. If you're happy with it, proceed.
Install an terminal emulator of your choice. I personally used this one, and technically an adb shell will work too (but you'll be tethered to your PC...).
Install a VNC Client of your choice. I personally used this one, but there might be better/faster ones out there.
Open the terminal emulator, and execute the following commands:
Code:
su
sh /sdcard/ubuntu.sh
If you see a bunch of errors and get dumped back at the "[email protected]:/ # " prompt, then something went wrong. Report your errors in this thread. Remember, this requires root (and the "su" command to get there, of course).
You'll be prompted for some setup parameters, which you can save at the end for later. Just answer each question and press Enter after each:
You'll need to provide a new password for the "ubuntu" user. A simple passwords like "ubuntu" works, unless you want some security.
Start VNC server? (y/n) - always choose "y". We need this to interact with the device.
SSH server? Optional. If you use it, you should enable it.
Screen size: Enter whatever you want. I personally used 960x540 (one quarter of the S4's screen size) so that I could actually interact with things using the touch screen.
Save settings as defaults? - You might not want to do this until you have a screen size that works best for you.
Once you see the prompt, "[email protected]:~# " - you're in! You now have Ubuntu running in a chroot. As the on-screen instructions suggest, type "exit" at this prompt to end the chroot and Ubuntu. It is recommended to do this when you are done so that the ubuntu.sh script can clean up after itself (unmounting things, etc.).
Leave your terminal emulator app running! Use your Home button to return home and leave it running.
Open you VNC client and connect with the following settings:
Nickname: (whatever you want)
Password: ubuntu
Address: localhost
Port: 5900 (default)
Username: (leave blank)
Color Format: 24-bit color (you can use lower if you want better performance)
Connect. For the VNC app I used, I had to zoom in to make the screen fit correctly (use pinch-to-zoom, and then use the "+" button on-screen). Also, you can play around with the Input Mode some if you wish.
Enjoy Ubuntu!
As you can see, it's not terribly complicated to get this up and running. Once you have set it up the first time, it's a lot smoother from then on out. The script is designed to allow you to use the external SDCard if you wish. Just use place the ubuntu.img in an "ubuntu" folder on your external SDCard, drop the ubuntu.sh on the root of the external SDCard, and use "sh /mnt/extSdCard/ubuntu.sh" instead (don't forget "su"!).
Click to expand...
Click to collapse
Freedreno Chroot Method (NEW):
This long-winded tutorial will explain how you can setup Xubuntu-desktop in a chroot. Before attempting any of this, you should read through all the steps and be sure you're comfortable performing the steps needed.
This requires roughly 2GB free space on your /data partition - the actual finished install is about 1.4GB, but it will require some extra space while it installs Freedreno and other components. HINT: Keep in mind that your /data partition is shared with your internal sdcard (your internal sdcard gets whatever space is leftover at the end of the /data partition), so you can get an idea how much free space you have by looking at how much space your internal sdcard has available.
Instructions:
Step 0 (option A) - Build Custom Kernel
You will need to install a custom kernel that has specific options enabled in the configuration, along with a few patched files in the source code. This list of changes is based on a delta from the stock I337 MF3 kernel, available at http://opensource.samsung.com/. You should be able to apply these changes to "any" kernel that you can build from source, so this documentation may apply to devices other than the I337.
Kernel Mods:
Required config changes:
Code:
CONFIG_DEVTMPFS=y
# CONFIG_DEVTMPFS_MOUNT is not set
CONFIG_DRM=y
CONFIG_MSM_KGSL_DRM=y
# CONFIG_KGSL_PER_PROCESS_PAGE_TABLE is not set
# CONFIG_MSM_KGSL_PAGE_TABLE_COUNT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_MSM_TRIPLE_BUFFER=y
CONFIG_FB_MSM_DEFAULT_DEPTH_BGRA8888=y
# CONFIG_FB_MSM_DEFAULT_DEPTH_RGBA8888 is not set
Fix for Wi-Fi problems when using MF3 kernel on UCUAMDL bootloaders (i.e. "unadulterated" or "neutered"):
Code:
CONFIG_PROC_AVC=y
Required Patches to kernel source code:
https://github.com/freedreno/kernel-msm/commit/4c0281745f8c85707be88acebb557aca0b8f1dba
https://github.com/freedreno/kernel-msm/commit/228f65d48d4855d903e3b4642179dfa14eedd040
https://github.com/freedreno/kernel-msm/commit/54b510b2e6bccf08fdf3a8ad00a62b27c2f8c1e6
Additional changes required for sudo to work (added 10-25-13 in v4):
Code:
# Samsung Rooting Restriction Feature
#
# CONFIG_SEC_RESTRICT_ROOTING is not set
# CONFIG_SEC_RESTRICT_SETUID is not set
# CONFIG_SEC_RESTRICT_FORK is not set
# CONFIG_SEC_RESTRICT_ROOTING_LOG is not set
Additional changes to the initramfs required for sudo to work (added 10-25-13 in v4):
Edit fstab.qcom, remove the nosuid, part of the line that references userdata.
Step 0 (option B) - Download Custom Kernel Instead
Don't want to compile your own kernel from source? If you have the I337, you can use mine! As mentioned above, this kernel is based on the original MF3 source from Samsung, with the modifications listed above. If you are stuck with MF3+ bootloaders on your I337, you will not be able to install this kernel directly (at the time of this writing). MDB/MDL bootloaders are fine, but you will need to flash loki-doki afterwards (this kernel is not pre-lokified!). This kernel might work with other similar variants (such as the M919), but I haven't tested this on anything except my own I337 daily-driver. YMMV. If you run into issues, you might need to wipe cache/dalvik. This will likely only work with TouchWiz-based ROMs (I have not tried it with AOSP). Here's some downloads for you:
mf3-freedreno-android-boot-v4.zip - CWM/TWRP flashable zip.
- Boots to android, allows Ubuntu with Freedreno to work in a chroot.
- Compiled with the original (slightly modified) MF3 initramfs and "mf3-freedreno-minimum-zImage-v4" (below).
- Includes minimal configuration changes described above, plus the WiFi fix part.
mf3-freedreno-minimum-zImage-v4 - Just the MF3 kernel itself with minimal changes to get the chroot to work.
mf3-freedreno-minimum-config-v4 - Yeah, that's right. I'm providing the .config files I used for all of this.
Step 0.5 - Install the Kernel
Before you can start up the chroot properly, you'll need to have the custom kernel installed. You don't want the "ubuntu-boot" version right now, because you don't have an Ubuntu install to boot to. If you're using my pre-built kernel, first flash mf3-freedreno-android-boot-v4.zip and then flash loki-doki.zip.
Step 1 - Companion Files
Download this file: mf3-freedreno-companions-v4.zip - Non-flashable zip. This includes the script files, which you should promptly read through both u.sh and launch.sh. It is always good practice to read through any script file you get from the internet, making sure it's doing what you would expect it to. Also check out CREDITS.txt, which includes information about the included upstart-dummy.tar.gz and start-stop-daemon files.
Extract the companion files .zip and place its contents on the root of your internal sdcard (/sdcard/). Don't extract the contents of upstart-dummy.tar.gz. This is your $src directory. You can change this if you wish (see script for details).
Step 2 - Install/Configure Ubuntu
Install an terminal emulator of your choice. I personally used this one, and technically an adb shell will work too (but you'll be tethered to your PC...). At the console/shell, type the following two commands:
Code:
su
sh /sdcard/u.sh bash
The script will download Ubuntu Core and install Freedreno, upstart-dummy, and lubuntu-desktop. Total download size will be around 425MB. Total install time will vary, but count on it taking at least 45 minutes to install and configure everything. At the very end, you'll be prompted to enter a password for the new user "ubuntu".
Step 2.5 - Exit ubuntu
When you see the message "Type 'exit' (without quotes) to leave ubuntu," the install is complete. You'll notice that your prompt changed to "[email protected]". This is the easiest way to confirm that you're actually inside the ubuntu chroot. Type exit and hit Enter to get back to android.
Step 3 - Fire it up!
From now on, you can start Ubuntu using u.sh in any of these three ways:
sh /sdcard/u.sh - This will make initial prep, STOP android (black screen), launch the chroot, install/configure if needed, and will execute "service lightdm start". This will give you the greeter and you can login as "ubuntu". If the lightdm service stops for whatever reason (see info about the home button below), the script will continue by exiting the chroot and rebooting your device.
[*]sh /sdcard/u.sh bash - Same as above, except that it will not stop android, not startx (will give bash shell instead), and will not reboot your phone when you exit the shell.
[*]sh /sdcard/u.sh destroy - This will do exactly as it sounds - destroy your ubuntu installation. This will unmount your /sdcard from ubuntu (if still mounted somehow) and then recursively delete your ubuntu installation. If you change the source or destination directories in the main script, you should be careful deleting things.
NOTE: Remember to ALWAYS run any these from a root shell, whether via terminal emulator, via adb shell, or using SManager (or similar).
Step 4 - Note the Home Button and Touchpad
Take note that any time you have X running via lightdm, the hardware Home button will kill the X server. This is intentional, and will exit the chroot and reboot your phone. You'll also notice that currently, the touchscreen acts like a giant touchpad (like on a laptop). Use two fingers to right-click or scroll. Direct touchscreen input is not available at this time due to a segmentation fault that evdev causes when used on this device in a chroot.
Step 5 - (optional) Make Changes and Do it All Over Again
Customize the crap out of it! Edit my u.sh, launch.sh or xorg.conf and have fun. If you find great improvements, please post them in this thread! In future revisions, I might include them. Things should be well documented within the scripts. You might even change the bit at the end of launch.sh that starts "service lightdm start&" instead of "startx" - this would give you the greeter and let you login as the user "ubuntu" if you want. Also note that those three files are the only ones that must remain in your $src directory if you wish to continue to run this as a chroot. By the way, booting directly to Ubuntu after it is installed does not require any of the companion files anymore.
Click to expand...
Click to collapse
Native Boot Method (NEW):
This part of the tutorial is for those who wish to take things a step further and boot your device directly into Xubuntu-desktop. This will require that you setup the Freedreno chroot properly, and then you'll be installing a new boot.img. While this doesn't replace your /system partition, you won't be able to boot directly into Android while you have this boot.img installed.
Instructions:
Step 1 - Install Ubuntu
Basically, you need to perform all the steps for the Freedreno Chroot method, and get that up and running first. All you're doing here is swapping out your kernel.
Step 2 (option A) - Build Custom Kernel
You'll need all of the kernel customizations included in the freedreno chroot method, plus these listed below:
NOTE: You will need some proprietary blobs, which can be found on your device in the /etc/firmware directory.
Config changes to enable booting directly into Ubuntu (beyond replacing the initramfs...):
Code:
CONFIG_EXTRA_FIRMWARE_="audience-es325-fw.bin a300_pm4.fw a300_pfp.fw vidc_1080p.fw"
CONFIG_CMDLINE="console=tty0 fbcon=vc:0-3"
# CONFIG_CMDLINE_FROM_BOOTLOADER is not set
CONFIG_CMDLINE_EXTEND=y
# CONFIG_CMDLINE_FORCE is not set
Optional config changes to enable the framebuffer console when booting directly into Ubuntu - useful for debugging.
Code:
CONFIG_VT_CONSOLE=y
CONFIG_VT_CONSOLE_SLEEP=y
CONFIG_VT_HW_CONSOLE_BINDING=y
CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
CONFIG_FRAMEBUFFER_CONSOLE=m
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
NOTE: You will need to grab some .ko files that are created, which must be loaded in the following order:
Code:
insmod /ko/font.ko
insmod /ko/softcursor.ko
insmod /ko/bitblit.ko
insmod /ko/fbcon.ko
I recommend that you include these four lines into the init script that is included in the ubuntu ramdisk. These can go pretty much anywhere after the ". /scripts/functions" part, but before it calls out to run-init. Also, don't forget to drop those .ko files into a new /ko directory in the initramfs. If you want to load these with modprobe, I'll leave that up to you (good luck).
Replace the entire ramdisk/initramfs:
At this time, I'm not going to provide instructions on how to do this. You'll need this mako boot.img straight from Ubuntu, repacked with the zImage created here. For what it's worth, the re-pack tool I'm using includes --cmdline 'androidboot.hardware=qcom user_debug=31 zcache', but I'm not sure if that's needed (especially considering our kernel seems to use qcache?). Anyways, good luck.
Step 2 (option B) - Download Custom Kernel Instead
Again, if you don't want to compile your own kernel from source, you can download mine and use it. The same warnings and restrictions apply as they do in Step 0 (option B) of the Freedreno Chroot method. And here's your downloads:
mf3-freedreno-ubuntu-boot-v4.zip - CWM/TWRP flashable zip.
- Boots to Ubuntu directly, but only if your Ubuntu install is located at /data/ubuntu (Default).
- Compiled with the original MF3 initramfs and "mf3-freedreno-everything-zImage-v4" (below).
- Includes all configuration changes described above.
mf3-freedreno-everything-zImage-v4 - Just the MF3 kernel itself with all changes for both chroot and direct booting to Ubuntu.
mf3-freedreno-everything-config-v4 - Yet again, I'm providing my complete .config file for this.
Step 3 - Install the Kernel
Here's the easy part. Flash your completed boot.img, flash loki-doki, and reboot. If you're using my pre-built kernel, first flash mf3-freedreno-ubuntu-boot-v4.zip and then flash loki-doki.zip.
Click to expand...
Click to collapse
Flashable Zip Method (NEWEST):
It's finally finished: a flashable .zip that you can use to dump a pre-built rootfs onto your data partition. This will still require that you flash one of the two custom kernels (whether for chroot or native booting), but it will allow you to skip the whole build/install process.
ubuntu-install-v4.zip - CWM/TWRP flashable .zip. Requires approx 2GB free space on your data partition during install, and the final install size is approximately 1.3GB (may want more free space to add your own programs/etc.). Output folder is /data/ubuntu. This can be changed in u.sh, but heed the warnings within!
Instructions:
Instructions for Chroot-style Ubuntu:
Download the "companions" .zip and extract its contents to the root of /sdcard.
Download the "ubuntu-install" .zip to your internal or external SDCard.
Download the "mf3-freedreno-android-boot" .zip to your internal or external SDCard.
Make a nandroid backup of your phone, and store it on an external SDCard or your computer. Always a good idea to have this.
Install the "ubuntu-install" and "mf3-freedreno-android-boot" .zip files, followed by loki-doki.zip if you need that for your device (e.g. I337).
Restart and resume with Step3 of the Freedreno Chroot Method.
Instructions for Native Boot Ubuntu:
Download the "ubuntu-install" .zip to your internal or external SDCard.
Download the "mf3-freedreno-ubuntu-boot" .zip to your internal or external SDCard.
Install the "ubuntu-install" and "mf3-freedreno-ubuntu-boot" .zip files, followed by loki-doki.zip if you need that for your device (e.g. I337).
Restart and let it start into Ubuntu!
NOTE: The username is "ubuntu" and the password is also "ubuntu" - it is highly recommended that you change this ASAP.
Click to expand...
Click to collapse
Known Issues/Bugs:
Below is the list of known issues that I can think of, from the top of my head. This will probably be updated later as everyone points stuff out. Some issues only apply to some of the methods, so the applicable methods are listed in parenthesis after each.
Sound has not been tested (freedreno/native)
3D graphics or OpenGL support has not been tested (all)
Some applications don't work in a headless environment (vnc)
Some applications don't like to run as root, such as chromium (freedreno) lightdm is working in companions-v3, so no need to login as root anymore
Onboard is not working (freedreno/native) fixed in companions-v3
sudo does not work (all) fixed in kernel-v4 for freedreno/native, but problem remains for (vnc) if you are not using a custom kernel
A few kernel Oops's (native)
Shutdown menu doesn't always work (freedreno/native) fixed partly in companions-v4 - proper locale settings seem to allow the shutdown menu to work once you are logged in
Performance issues due to VNC connection (vnc)
No 3G/WiFi/network connection that I'm aware of... (native)
No control over 3G/WiFi/network/bluetooth yet (all)
Xorg's normal touchscreen driver evdev causes segmentation faults (freedreno/native)
Working on a possibly trying to get fbdev to work natively without Freedreno for simplicity (freedreno/native)
Anything you'd normally expect from a phone does not exist (freedreno/native)
Screen rotation (with or without accelerometer) doesn't work yet (freedreno/native)
HDMI/MHL output remains untested at this time. I got it to briefly work once, but I need to revisit this. (freedreno/native)
Many more to come, I'm sure...
Click to expand...
Click to collapse
To-Do:
Add mirrors to the download links.
Add a CWM/TWRP-flashable .zip that just dumps a clean Ubuntu install onto your data partition. This should be easy enough. completed!
Fix some of the bugs above.
Simplify the launch.sh and xorg.conf files. The u.sh script seems pretty solid.
Develop a method that works with only fbdev. This method might eliminate the possibility of 3D acceleration, but should enable screen rotation and other nifty things.
Possibly look into getting kexec (or similar) to work on the Galaxy S4 to offer a dual-boot option. Low priority at the moment, because flashing a kernel back and forth is pretty easy stuff.
Get Ubuntu Touch to work. This would eliminate a lot of bugs. I mostly need to just buckle-down and build CM10.1 from source, and then slowly visit each step of the Ubuntu Touch boot process.... Ugh.
Rebuild Freedreno to try to get Mesa/Gallium3D working properly. I'm probably going to need a lot of help from Rob Clark on this one!
More to come...
Click to expand...
Click to collapse
Revision History:
[11-13] mf3-freedreno-companions-v2.zip - Updated launch.sh: added some error checking and fixed the Freedreno build process.
[11-15] mf3-freedreno-companions-v3.zip - Updated launch.sh to include onboard and English language. Removed florence and xvkbd. Removed .keyb script. Added sudo. Simplified upstart-dummy, and included new upstart-dummy.tar.gz. Prepped for new flashable .zip method.
[11-26] mf3-freedreno-companions-v4.zip - Updated launch.sh: included fix for onboard so that it should work anytime lightdm is launched, added some bits for sudo to work, and home button now kills lightdm (not just the Xsession); Updated u.sh: Added check for root, added notes about sudo and nosuid.
[11-26] mf3-freedreno-android-boot-v4.zip & mf3-freedreno-ubuntu-boot-v4.zip - Finally fixed sudo! See kernel mods sections for details.
[11-26] ubuntu-install-v4.zip - rebuilt with new companions.
Click to expand...
Click to collapse
Aou said:
Check out this app: SManager (Script Manager). It makes running the ubuntu.sh or u.sh a whole lot easier, plus you can send it into the background (vnc method only). Just remember to jump back into SManager later, use the Menu Key and open the console to be able to kill the ubuntu.sh. You can also add "bash" as an additional argument (freedreno method only). This seems to be an effective replacement for the Terminal Emulator. Don't forget to choose the "su" option to run either script as root.
Click to expand...
Click to collapse
I have literally spent hundreds of hours working on this project, and many more hours documenting it thoroughly - just so that I could share it with all of you. If you found this guide, custom kernel or scripts to be beneficial, please hit the THANKS button on this post.
This mostly works, but I think I may have made an error. I see it starting the sshd, but not VNC server. I can call vncserver, but when launching the vnc client app I just get stuck at "Establishing Handshake" until it times out. This differs from when I don't call vncserver, where I get immediately connection refused.
I'm going to redownload the image and start from scratch, but the image isn't very friendly when I'm trying to figure out how to rerun the initial configuration script...
On my S4 running OTA-MF3 with root, this didn't work for me until i used Busybox Installer from the market. Tried internal and external without it, neither worked. Only thing that looked like an error after that was
Code:
chown: cannot access '/external-sd/': no such file or directory
but this only showed the first time I ran it. Opened VNC connection just fine from my computer to the phone, and though there was slight graphics glitching (orange and red boxes on desktop) it worked just fine and they didn't interfere. Thanks for this!
Tsaukpaetra said:
This mostly works, but I think I may have made an error. I see it starting the sshd, but not VNC server. I can call vncserver, but when launching the vnc client app I just get stuck at "Establishing Handshake" until it times out. This differs from when I don't call vncserver, where I get immediately connection refused.
I'm going to redownload the image and start from scratch, but the image isn't very friendly when I'm trying to figure out how to rerun the initial configuration script...
Click to expand...
Click to collapse
It's not, I agree. I found that the easiest way to clear the configuration and start anew is to do the following from the "[email protected]" prompt (that is, within ubuntu):
Code:
rm /root/DONOTDELETE.txt
rm /root/cfg/linux.config
DeadlySin9 said:
On my S4 running OTA-MF3 with root, this didn't work for me until i used Busybox Installer from the market. Tried internal and external without it, neither worked. Only thing that looked like an error after that was
Code:
chown: cannot access '/external-sd/': no such file or directory
but this only showed the first time I ran it. Opened VNC connection just fine from my computer to the phone, and though there was slight graphics glitching (orange and red boxes on desktop) it worked just fine and they didn't interfere. Thanks for this!
Click to expand...
Click to collapse
Interesting. I looked through the image's init.sh, and found something that's relatively new (wasn't in beta):
Code:
# Fix for sdcard read/write permissions by Barry flanagan
chown ubuntu /external-sd/
As far as I can tell, that message is harmless. It's only included in the initial configuration, as it's in the section:
Code:
if [ ! -f /root/DONOTDELETE.txt ]
As for the need to download/install the BusyBox installer, that's not surprising at all. I've had so much trouble BusyBox ever since I switched to MF3. I might include this as an extra step in the OP - thank you.
You kidding right...does this really work? To cool, thanks Aou. Great work.
TheAxman said:
You kidding right...does this really work? To cool, thanks Aou. Great work.
Click to expand...
Click to collapse
Yessir, it does indeed work! The S4 handles it very nicely with the extra RAM & CPU it has to spare, so the only limiting factor is VNC. If someone could devise a way to get Ubuntu to draw directly on the screen from within that Chroot, that would be perfect. I don't think it's really possible by design, but this might be the closest we get to running native linux on the I337 until we see some unlocked bootloaders.
Thanks
Aou said:
Yessir, it does indeed work! The S4 handles it very nicely with the extra RAM & CPU it has to spare, so the only limiting factor is VNC. If someone could devise a way to get Ubuntu to draw directly on the screen from within that Chroot, that would be perfect. I don't think it's really possible by design, but this might be the closest we get to running native linux on the I337 until we see some unlocked bootloaders.
Thanks
Click to expand...
Click to collapse
In fact I am currently working on getting xorg to write to androids frame buffer which will mean no more vnc
Sent from my Nexus 4 using xda premium
zacthespack said:
In fact I am currently working on getting xorg to write to androids frame buffer which will mean no more vnc
Sent from my Nexus 4 using xda premium
Click to expand...
Click to collapse
You, sir, are the man. thank you so much for working on this! I threw $10 at you to help fund the skittles/cheetos/carrots/beer/pizza/whatever it takes to help you along.
Added a couple things to the OP. Looks like pure-stock roms will indeed need BusyBox installed, by some means or another. Also, found SManager, which makes executing the ubuntu.sh script much, much easier.
The second script that allows me to launch ubuntu, but the first that allows me to get a real X server on my vnc. Thank you so much !
PS: Why am I unable to install wine ?
"Package wine is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source"
This is working pretty good, slow though, do I have it setup right, or did I miss something?
TheAxman said:
This is working pretty good, slow though, do I have it setup right, or did I miss something?
Click to expand...
Click to collapse
I have found it to run a bit slow, and with regular crashing of GUI programs too. Is it just slow or unusable? You can always try closing other apps besides terminal and VNC, or try to VNC from a computer even.
tboss1995 said:
The second script that allows me to launch ubuntu, but the first that allows me to get a real X server on my vnc. Thank you so much !
PS: Why am I unable to install wine ?
"Package wine is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source"
Click to expand...
Click to collapse
Looks like you're not the only one. Check out this thread on the LinuxOnAndroid site:
http://forum.linuxonandroid.org/index.php?topic=268.0
TheAxman said:
This is working pretty good, slow though, do I have it setup right, or did I miss something?
Click to expand...
Click to collapse
DeadlySin9 said:
I have found it to run a bit slow, and with regular crashing of GUI programs too. Is it just slow or unusable? You can always try closing other apps besides terminal and VNC, or try to VNC from a computer even.
Click to expand...
Click to collapse
Most of the slowness comes from interacting with it via VNC, it would seem. Hard to compare to anything else, considering VNC is all we've got at the moment. I wonder if @zacthespack can shed some light on this. As he mentioned before, he's working on getting it to draw directly to the Android screen. I'm certainly not going to ask for any status updates, but I'm wondering if he can confirm that we'd see a speed increase without VNC...
EDIT: Also, as I use it more, I am noticing the app crashes too (such as Chromium). Could just be something in the 13.04 image, but also could be because we're running this all on ARM architecture.
Aou said:
Looks like you're not the only one. Check out this thread on the LinuxOnAndroid site:
http://forum.linuxonandroid.org/index.php?topic=268.0
Most of the slowness comes from interacting with it via VNC, it would seem. Hard to compare to anything else, considering VNC is all we've got at the moment. I wonder if @zacthespack can shed some light on this. As he mentioned before, he's working on getting it to draw directly to the Android screen. I'm certainly not going to ask for any status updates, but I'm wondering if he can confirm that we'd see a speed increase without VNC...
Click to expand...
Click to collapse
RE installing WINE, sure you can install the ARM verson but Wine is not a emulator (infact WINE stands for Wine Is Not a Emulator) so you can only run ARM compiled windows software.
Yest there is a good speed increase, as with VNC xorg writes to the vnc server and passes it to the vnc client to then render on the screen.
With the new method xorg just writes to Androids frame buffer, no inbetween man.
And it can get even faster once we have graphics accelerations although not all chip sets will get that.
zacthespack said:
RE installing WINE, sure you can install the ARM verson but Wine is not a emulator (infact WINE stands for Wine Is Not a Emulator) so you can only run ARM compiled windows software.
Click to expand...
Click to collapse
Good point, forgot about that. It's really just a big package of Windows dependencies, responding to API calls, etc. The software that Wine runs is still sending stuff to/from the processor directly, therefore it would have to be compiled for ARM.
I wonder what Windows8 programs are available that are compiled for ARM (because of the Microsoft Surface and all...).
Aou said:
Good point, forgot about that. It's really just a big package of Windows dependencies, responding to API calls, etc. The software that Wine runs is still sending stuff to/from the processor directly, therefore it would have to be compiled for ARM.
I wonder what Windows8 programs are available that are compiled for ARM (because of the Microsoft Surface and all...).
Click to expand...
Click to collapse
There's plenty or ARM software within the built in app store, but I'm not sure where they install to or how one would go about extracting them. I have it on desktop and it shows what processors it runs on. Can't wait for the straight to screen function though
Also, I'm going to see if a different image is more stable. Chromium was the most obvious crashing for me and others generally crashed.
DeadlySin9 said:
There's plenty or ARM software within the built in app store, but I'm not sure where they install to or how one would go about extracting them. I have it on desktop and it shows what processors it runs on. Can't wait for the straight to screen function though
Also, I'm going to see if a different image is more stable. Chromium was the most obvious crashing for me and others generally crashed.
Click to expand...
Click to collapse
I noticed that with 12.04, it doesn't seem to connect to Xorg or something, because when you use VNC, it only shows a grey screen with a cross cursor. Same for both "Lite" and "Full" packages. Haven't tried older (10.x) packages of Ubuntu.
The other Linux images should work just fine. Optionally, you can edit the ubuntu.sh script to be more appropriate, but it should theoretically work the same (unless the init.sh is located elsewhere inside the image...).
I tried the Ubuntu 10 image and the Debian image but ubuntu didn't run vnc (vncserver not found or something) and debian kept saying I didn't have permissions.
It appears chromium is incredibly unstable on this image, so I've uninstalled it.
I'm currently working on trying to get Minecraft to work, but ever since 1.6.2 and this new launcher, it's incredibly difficult to modify the client files and such. Something is going wrong with liblwjgl.so. I can get the launcher to work correctly, but when it goes to load the game, it can't find liblwjgl.so and says that it might be because of 32bit vs ARM. I did get lwjgl installed correctly, and pulled the ARM version of the .so and stuck it in [what I believe was] the right .jar file, but it still has the error.
I'll keep you all posted. If I can get this to work, and if zacthespack can get xorg to draw on the android screen, ... :good:
EDIT:
Found out that every time the launcher runs minecraft, it downloads several libraries and other crap to run the game, to keep itself current and to support multiple versions, yada, yada. Unfortunately, this means that it downloads https://s3.amazonaws.com/Minecraft..../2.9.0/lwjgl-platform-2.9.0-natives-linux.jar every time you click Play, and overwrites any custom one you might have (i.e. one with ARM libraries inside). I tried revoking write access to the file, but then the launcher aborts the launch because it can't overwrite the file.
Any suggestions?
EDIT #2:
Well, the easy solution was to modify the file, run the launcher, disconnect mobile data temporarily, and then launch the game ("couldn't connect to server .... have local copy of file .... assuming it's good...."). No more errors about that stupid library file. However, the game immediately crashes now with an error report. Investigating this now. PROGRESS!
Problem
I'm aware I may need to modify the script in order to accommodate my setup, but I figured I'd post here first before changing anything in case someone else had a similar problem and came up with the solution.
I followed all the instructions, except I want to boot from an external USB stick (mounted using StickMount).
I reviewed the script, dropped it on the root of the USB stick, and copied the unzipped image to a folder named ubuntu.
Here is the output when I run the script:
Making mount points and mounting to them...
mount: mounting /dev/loop20 on /data/local/ubmnt failed: Operation not supported
mount: mounting devpts on /data/local/ubmnt/dev/pts failed: No such file or directory
mount: mounting proc on /data/local/ubmnt/proc failed: No such file or directory
mount: mounting sysfs on /data/local/ubmnt/sys failed: No such file or directory
Connecting to /sdcard...
mount: mounting /sdcard on /data/local/ubmnt/sdcard failed: No such file or directory
Putting in some settings...
net.ipv4.ip_forward = 1
/sdcard/usbStorage/sda1/ubuntu.sh[19]: can't create /data/local/ubmnt/etc/resolv.conf: No such file or directory
/sdcard/usbStorage/sda1/ubuntu.sh[20]: can't create /data/local/ubmnt/etc/resolv.conf: No such file or directory
/sdcard/usbStorage/sda1/ubuntu.sh[21]: can't create /data/local/ubmnt/etc/hosts: No such file or directory
ubuntu is configured with SSH and VNC servers that can be accessed from the IP:
(You will see an error about wlan0 if your WiFi is disabled. Safe to ignore.)
----------------- OKAY, starting Ubuntu! -----------------
chroot: can't execute '/root/init.sh': No such file or directory
----------------- Ubuntu has exited! -----------------
Cleaning up - unmounting everything and removing what we made...
umount: can't forcibly umount /data/local/ubmnt/dev/pts: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/sys: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/proc: No such file or directory
umount: can't forcibly umount /data/local/ubmnt/sdcard: No such file or directory
umount: can't forcibly umount /data/local/ubmnt: Invalid argument
Welcome back to your android.
Click to expand...
Click to collapse
I am running as root, BusyBox free has been installed. My terminal app has been granted root privileges. The path to the USB stick is sdcard/usbStorage/sda1.
Any help/guidance would be greatly appreciated! :fingers-crossed:

[Q&A] [DEV][WIP] xubuntu on tf300tg 0.1.2 (updated 130408)

Q&A for [DEV][WIP] xubuntu on tf300tg 0.1.2 (updated 130408)
Some developers prefer that questions remain separate from their main development thread to help keep things organized. Placing your question within this thread will increase its chances of being answered by a member of the community or by the developer.
Before posting, please use the forum search and read through the discussion thread for [DEV][WIP] xubuntu on tf300tg 0.1.2 (updated 130408). If you can't find an answer, post it here, being sure to give as much information as possible (firmware version, steps to reproduce, logcat if available) so that you can get help.
Thanks for understanding and for helping to keep XDA neat and tidy!
cannot boot into xubuntu
Hello guys.
I'm having a problem trying to make everything working. I tried to follow the webdoctors instructions and somehow things went wrong.
First of all, I installed v2.2.9 kernel using TWRP. Then, I split my microSD cart into partitions under gparted, then I used dd to copy from img to first card's partition. To this point everything went well. I tried to boot into xubuntu - it worked. But I had no internet connection and couldn't run mod_update.sh under xubuntu. Then, I decided to reboot system. And I couldn't go back into xubuntu - I'm choosing linux [1], and then there are some lines and it looks like it's stuck on lines like
Code:
init avahi-deamon terminated (or something like that)
...
pad_get_pspval->inval=Not charging ret=0
pad_get_psp voltage_now=8060
pad_get_psp ...
asuspec: [asuspec_enter_s3_work_function] EC in S3
I can boot into android without any problem, but WiFi isn't working. I've tried to format my card, put files from rootfs for a couple of times, and it worked only twice, rest of it just shows lines of code I mentioned.
I hope I managed to write everything clearly I receive some help from you!
xubuntu 14.04 working
[It seems as a new member I cannot post to the dev thread directly, but to an associated Q&A thread. I hope the people that might be interested in this post can read it anyway.]
I have been running xubuntu 14.04 on my Asus TF300T for some months now. As other people seem to have difficulties with this I want to share how I got this to work. My own contribution in this is quite small. It mostly consists in combining in a particular way the great work others here on xda have done.
About my methodology: I am neither expert in the relevant hardware nor software. Also I like things to be reproducible and portable. So I try to start from the most standard ingredients (official sources, standard linux distrubtions etc.) and modify them in small independent and documented modular steps until I get things to work.
In this post I will present only a very brief outline of how I proceeded. I hope to present more details in later posts.
KERNEL:
I am using a boot menu setup with kexec hardboot. Thus, for linux I am using a dedicated linux kernel, not a dual purpose linux/android kernel. The kernel is based on the official Asus source with a few small patches. I am not sure the patches are relevant for 14.04 to work, but they might be. I will describe them in a later post.
ROOTFS + INITRAMFS:
The initial rootfs is simply the official ubuntu core 14.04 armhf image found at the official ubuntu site [cannot post link].
On top of this the kernel config in /boot and modules + firmware in /lib/modules and /lib/firmware have to be installed. Also a few other small files for wifi + bluetooth to work can be installed at this stage or later.
The initial initramfs is generated through a chroot from this image via the standard update-initramfs tool. For this to work properly only a tiny configuration file that indicates the linux root partition is needed in /etc/initramfs-tools/conf.d
In subsequent stages new versions of the initramfs can always be generated directly from the booted linux image via update-initramfs.
The chroot can also be used to download all required packages for the full install via
> apt-get -d install "packagename"
This requires having set /etc/apt/sources.list and possibly /etc/resolv.conf /etc/hosts /etc/hostname
X11:
As everybody knows X11 is a problem with tegra graphics. Fortunately, drivers are available at Nvidia's Linux for Tegra Site [cannot post link].
Unfortunately, these cover only X11 ABI up to version 14, while X11 in 14.04 is using ABI 15. What is more, I have experienced graphics corruption issues with the ABI 14 driver so I am actually using the ABI 13 driver. That means in addition to installing the relevant files from the nvidia site it is necessary to downgrade X11 for 14.04. I got this to work with the following packages:
- from 12.04:
libxi6 (this is more up to date than the 13.04 version)
- from 13.04:
xserver-xorg-core
libxfixes3
xserver-xorg-input-evdev
xserver-xorg-input-multitouch
xserver-xorg-video-dummy (might not be necessary)
- from 13.10:
libgl1-mesa-dri
Also you need the package xserver-xorg-input-mtev
sources are at rabits launchpad site [cannot post link]
SECOND STAGE:
After setting up a user, downloading desired packages (in particular "xubuntu-desktop"), making available the X11 packages etc. boot into the new system as the new user. Now install the X11 packages, set some of them on hold (apt-mark hold), for me it worked by marking xserver-xorg-core, libxfixes3 and libgl1-mesa-dri. Afterward you might need
> apt-get -f install
Then install xubuntu-desktop and possibly further required packages, then generate a new initramfs. Also further stuff needs to be / can be installed at this stage for audio, video, codecs, keyboard etc.
The next boot should then land you in a fully working xubuntu 14.04.
Good news! Could you upload your image xubuntu 14.04?
aurel33 said:
Good news! Could you upload your image xubuntu 14.04?
Click to expand...
Click to collapse
The image I am using myself is quite a mess now, after many months of use. Stripping this to the essentials and removing all personal stuff would be quite some work. What I rather want to do is share a procedure that should allow anybody to generate his/her own customized image. My previous post was extremely brief in this respect, but I hope to give more details in a follow up post. The next post, however, will be dedicated to the kernel I use as there are two patches that might (or might not) be relevant for 14.04 to work.
kernel for xubuntu 14.04
[I am sorry for not including the relevant links. As a new member I am not allowed to post links.]
As I said I am using a dedicated linux kernel, not a dual purpose linux/android kernel.
I am using the toolchain from ubuntu package "gcc-arm-linux-androideabi".
Instructions: Download the official Asus kernel source and get the toolchain ready.
Apply the following patches (attached):
toolchain/config patches:
- toolchain.patch : a minimal patch to solve toolchain dependent compliation issues
- modmake.patch : compile modules with option "-fno-pic"
- compressed_makefile.patch : also to solve toolchain issues (I found this in various places)
- bcm.patch : complete Kconfig for modules "bcmdhd_29" so none of "bcmdhd", "bcm43xx", "bcm4329" needs to be selected
proper kernel patches:
- mored.patch : patch to see console information at boot (from xda contributer "moreD")
- subreaper.patch : patch to update certain process information/signals to kernel 3.4 (from Lennart Poettering)
- 0001/2/3-AppArmor-... : update kernel to make apparmor work properly (from John Johansen)
- grouper-f2fs.patch : use this in case you want to add f2fs support (from Alex Page)
My kernel config file "config.txt" is also attached.
Now set environment variables:
KBUILD_OUTPUT=<outdir> directory for compilation output and config files
INSTALL_MOD_PATH=<libdir> directory for module and firmware installation
INSTALL_PATH=<bootdir> directory for kernel installation
In case of cross compilation set additionally:
ARCH=arm
CROSS_COMPILE=arm-linux-androideabi-
Now compile:
make -j4 all
make modules_install
make firmware_install
make zinstall
I am not sure if any of the above patches is essential to get xubuntu 14.04 running, but I suspect that the subreaper patch and the AppArmor patches might be important. The reason I use them is that I got errors in previous attempts of installing (x)ubuntu that after some research I found got fixed with these patches.
Happy compliling!
Can you please give me step by step instructions on how to install Ubuntu 14.04 on my TF300T?
Sent from my TF300T using XDA Free mobile app
rootfs for xubuntu 14.04 - PART 1
Here I describe in more detail the first part of the installation of the root file system (rootfs) for xubuntu 14.04 on the Asus TF300T. I will assume that the installation is to the root of an empty partition.
I. PREPARE ROOTFS:
1. CORE ROOTFS: Download the file
"ubuntu-core-14.04.1-core-armhf.tar.gz"
from the Ubuntu repositories. (Search for "ubuntu core" to find the site, I cannot post the link.) Extract this to the xubuntu partition. This is the initial rootfs.
This rootfs already works in a chroot, either from an existing linux installation or from Android. However, for this to be more useful we need to set up internet access and repositories.
2. INTERNET SETUP: Extract the attached file "inet-setup-trusty.tar.gz" into the rootfs. This sets up the relevant ubuntu repositories and fixes DNS lookup and gives the machine a name. Here I chose "tf300t-linux". To change the name, edit the files "/etc/hostname" and "/etc/hosts".
Before entering the rootfs via chroot, we set up more infrastructure for the ability to later run the rootfs stand alone. This requires a kernel.
3. KERNEL SETUP 1: Extract the kernel modules into "/lib/modules/..." and the kernel firmware into "/lib/firmware/...". If you compiled the kernel youself, these files will have been generated in the process. If you take the kernel from elsewhere these files have to be provided with the kernel.
4. KERNEL SETUP 2: To ensure relevant modules are loaded at boot, a file "/etc/modules" might be needed. This depends on the kernel. Assuming you compilde the kernel following my instructions in a previous post, just extract the attached file "initmodules.tar.gz" into the rootfs.
We shall later use "update-initramfs" to generate the initial ram file system, a file named "initrd.img". For this to work we need the following:
4. KERNEL SETUP 3: Put the kernel image into "/boot/". It should be called "vmlinuz-3.1.10" or similar. Also put "config-3.1.10" and "System.map-3.1.10" into this directory. These are also generated when compiling the kernel. I am not sure if "System.map-3.1.10" is required. "config-3.1.10" can be extracted from the kernel image if not provided. (See instructions elsewhere.)
5. INITRD CONFIG: For "update-initramfs" to work correctly a configuration file is needed indicating the root partition. This goes into "/etc/initramfs-tools/conf.d/". You might just extract the attached file "initramfs-mmcblk1p1.tar.gz". This assumes that xubuntu uses the partition "mmcblk1p1" with "ext4", i.e. the first partition on the external micro sd card and fomatted with the "ext4" file system. If you use a differnt partition and/or file system, edit the included file "/etc/initramfs-tools/conf.d/specify_root_device" accordingly.
6. WIFI: For wifi to work you need a file "nvram.txt". This is located under Android in "/data/misc/wifi/nvram.txt". Copy this to the rootfs at "/lib/firmware/nvram.txt" if you use the kernel I describe in a previous post. Otherwise the required location might be different. You can read it off in the kernel config file "config-3.1.10". (Search for "*NVRAM_PATH*".) Also you need firmware files. Under Android these should be under "/system/vendor/firmware/". Copy them to "/lib/firmware/" or see the location in the config file (search for "*FW_DIR*"). Note that these files include subdirectories, copy with subdirectories.
7. BLUETOOTH: You need a firmware file. This should be in Android under "/system/etc/firmware/". Its name should start with "BCM4329...". In the rootfs name this "/lib/firmware/BCM4329.2.hcd". You need an executable called "brcm_patchram_plus" which loads the firmware dynamically. This goes in the rootfs into "/usr/sbin/brcm_patchram_plus". Go to the site of the Linux for Tegra R16 project of Nvidia. Download "Tegra30_Linux_R16.4.0_armhf.tbz2". Inside look for "Linux_for_Tegra/nv_tegra/nvidia_drivers.tbz2". Inside this you find the executable "/usr/sbin/brcm_patchram_plus". You need a process that automatically calls this executable. It is convenient to integrate this with ubuntu's upstart. To this end just extract the attached file "nvbt.tar.gz". It yields a file "/etc/init/patchram.conf". I have adapted this file from previous work on xda on bluetooth for linux on the tf300t or tf700t (but can't find the post now). Modify this if you want to change the name or location of the firmware file.
8. GENERAL CONFIG: To fix some general configuration parameters for the tf300t extract the attached file "nvinit.tar.gz". This yields a file "/etc/init/nv.conf". Again, this is from prvious work on xda for the tf300t or tf700t (but I can't find the relevant post now).
II. ENTER ROOTFS:
I suppose you have mounted the partition for xubuntu at "/mnt/linux", either under an existing linux or under Android.
> LC_ALL=C sudo chroot /mnt/linux
update repositories:
> apt-get update
this is useful for a smooth installation of packages:
> apt-get install dialog
now install upgrades:
> apt-get dist-upgrade
create your user:
> adduser username
> addgroup username adm
> addgroup username sudo
generate initramfs and leave chroot:
> update-initramfs -c -k 3.1.10
> exit
This generates a file "/boot/initrd.img-3.1.10". This file together with the kernel image are needed to boot into the newly set up system.
III. BOOT ROOTFS:
You should now be able to boot into the system. How this is done depends on your set up. There are lots of threads on xda devoted to this subject. You should now have a functional minimal linux system based on ubuntu 14.04.
If you want to install packages it is convenient to download these from the chroot (where wifi is available) and before booting into the system as follows:
> apt-get -d install package1 package2 ...
Then after booting, install them via,
> sudo apt-get install package1 package2 ...
The details of the further set up of the GUI and of the full xubuntu 14.04 will be described in a subsequent post.
rootfs for xubuntu 14.04 - PART 2
Here I describe the second part of the installation of the root file system (rootfs) for xubuntu 14.04 on the Asus TF300T. I assume the rootfs has been prepared as described in this post, following the steps "I. PREPARE ROOTFS" and "II. ENTER ROOTFS", but not booted yet. If it has already been booted it might (or might not) be necessary to rewrite the file "/etc/resolv.conf" to the version contained in the file "inet-setup-trusty.tar.gz" from that post. This is to ensure internet access works correctly from chroot.
I. GET REQUIRED PACKAGES
The most complicated part of getting xubuntu 14.04 to work is in the graphics drivers and libraries. Mostly, the necessary files are found on the page of the "Linux for Tegra R16" project of nvidia. Look for the Tegra 30 "Cardhu" versions. As described in my first post, the problem with this and Ubuntu 14.04 is that this version of Ubuntu uses an X server with ABI version 15. An appropriate driver is not supplied by nvidia. The latest driver version supplied by nvidia is with ABI version 14. However, I had problems with graphics corruption with this driver, so I am using the one for ABI version 13. There is a ready made package containing this in the ubuntu 13.04 repository. Get this. The filename is:
"nvidia-tegra3_16.0-0ubuntu3_armhf.deb"
(I compiled a version of this with updated source files using nvidia's latest release "16.4" for my own use, but it is somewhat complicated to do this, so I wont put the details in this post. Anyway, this version should work for most purposes.)
Since we need the X server with ABI version 13, we need to install corresponding packages that are not from ubuntu 14.04, but from previous releases. Grab the following packages:
RELEASE PACKAGE FILENAME
12.04 libxi6 libxi6_1.7.1.901-1ubuntu1~precise1_armhf.deb
13.04 xserver-xorg-core xserver-xorg-core_1.13.3-0ubuntu6.2_armhf.deb
13.04 libxfixes3 libxfixes3_5.0-4ubuntu5.13.04.1_armhf.deb
13.04 xserver-xorg-input-evdev xserver-xorg-input-evdev_2.7.3-0ubuntu2b2_armhf.deb
13.04 xserver-xorg-input-multitouch xserver-xorg-input-multitouch_1.0~rc2+git20110312-2build3_armhf.deb
13.04 xserver-xorg-video-dummy xserver-xorg-video-dummy_0.3.6-0ubuntu1_armhf.deb (this might not be needed)
13.10 libgl1-mesa-dri libgl1-mesa-dri_9.2.1-1ubuntu3_armhf.deb
There is another package needed for the X server for the touchscreen to work. Build instructions can be found on the GitHub page of user "rabits" under "tf700". I have attached the resulting package "xserver-xorg-input-mtev". Uncompressing yields:
"xserver-xorg-input-mtev_0.1.13ubuntu2_armhf.deb"
II. PLACE PACKAGES
1. Put all the 9 package files for the x server into a directory in the rootfs.
2. Enter the rootfs via chroot from Linux or Android (supposing the parition of the rootfs is mounted at "/mnt/linux")
> LC_ALL=C sudo chroot /mnt/linux
3. Go to the directory with the X server packages. Then install them:
> dpkg -i filename1 filename2 ...
4. IMPORTANT! Prevent relevant packages from being updated:
> apt-mark hold xserver-xorg-core
> apt-mark hold libxfixes3
> apt-mark hold libgl1-mesa-dri
5. Pull in dependencies:
> apt-get -f install
6. Get xubuntu packages (this takes some time depending on the speed of your internet connection) and leave:
> apt-get -d install language-pack-en
> apt-get -d install xubuntu-desktop
> exit
III. XUBUNTU INSTALL
Now, boot the rootfs.
1. Set timezone
> sudo dpkg-reconfigure tzdata
2. Install language pack to avoid locale problems
> sudo apt-get install language-pack-en
3. Install xubuntu. (This takes some time)
> sudo apt-get install xubuntu-desktop
4. Produce a new initrd.img and exit
> sudo update-initramfs -c -k 3.1.10
> sudo shutdown now
Copy this from /boot/initrd.img-3.1.10 to where its needed for the boot process.
IV. FURTHER CONFIG
1. FIX AUDIO CONFIG PROBLEMS
Extract attached file "nvaudio.tar.gz" to the rootfs.
2. SET UP X INPUT DRIVERS
Extract attached file "xorg-input.tar.gz" to the rootfs.
V. BOOT XUBUNTU
Booting the rootfs should land you now in a fully working xubuntu 14.04.
There are further steps to improve the experience such as
- install nvidia codecs and player
- fix graphics corruption on resume from suspend
- install keymaps for a better keyboard experience with the dock
I hope to describe some of this in later posts in so far as it differs from solutions that other xda members have already proposed.
A final remark:
THE IDENTICAL PROCEDURE SHOULD WORK FOR INSTALLING LUBUNTU.
(Just replace "xubuntu-desktop" with "lubuntu-desktop", I have tested this once)
It does not work with standard Ubuntu (i.e. Unity) though, because that depends on the newer X server.
@Geometry
Is there any chance, that you would share your working rootfs (ofc fresh build) and others can use it? Or everyone has to follow your guide to have working rootfs and it cannot be shared?
mentosso said:
@Geometry
Is there any chance, that you would share your working rootfs (ofc fresh build) and others can use it? Or everyone has to follow your guide to have working rootfs and it cannot be shared?
Click to expand...
Click to collapse
I would certainly be happy to share a working rootfs (understandably not the one I have been using myself for the last couple of months though). Unfortunately, I can spend very little time on this. So it is a question of finding the time to prepare a new build, then finding a free file hosting service etc. I will try to make an effort to make this happen in the near future, but can't promise anyhing at this point...
can you go more in depth in how you installed the kernel? I get some of the basics but I don't understand how to install it.
phonegeekjr said:
can you go more in depth in how you installed the kernel? I get some of the basics but I don't understand how to install it.
Click to expand...
Click to collapse
Sorry for being very brief in this respect. One way to install the kernel would be to use the "abootimg" tool to combine the kernel with a initrd.img file into a boot image, then convert this to a blob file using "blobpack" and then flashing this to the tablet. However, this would leave you unable to run any other OS/ROM (such as any Android). So this is probably not what you want. Instead you want some multiboot/multirom system. What I use myself is a modified version of the boot kernel from the main thread which starts a script that gives me a menu and then boots the kernel/initrd.img I select via kexec-hardboot. To "install" a kernel/initrd.img you just have to store them at a place where this script can find them. If I have time I might describe my particular setup in more detail later. But for the moment my main intention is to have those that already have a setup like this be able to test a full xubuntu 14.04. Then, with the help of those experts it will be easier to generate a way to make this accessible to a large number of users.
test kernel
I provide here a test kernel, compiled as described in this post. There is one small difference compared to the description in the post. It turns out that instead of the "arm-linux-androideabi-" toolchain, the "arm-linux-gnueabihf-" toolchain works as well and I have used that. Note that the kernel is a linux only kernel that will not work with Android. The attached file can be decompressed directly into the rootfs, automatically providing all essential files (modules, config etc.) in the right place. The (compressed) kernel itself is the file "/boot/vmlinuz-3.1.10". This is the file that is often named "zImage". The kernel config file is "/boot/config-3.1.10".
The other news is that I have also built a working xubuntu 14.04 rootfs as described in his post. As soon as I find a suitable file hosting service I will make this available here.
xubuntu 14.04 rootfs
So, here is the rootfs as prepared according to this post and this post. There is one small difference in the preparation as compared to those posts. I have used a modified and updated version of the package "nvidia-tegra3", see attached file.
So the rootfs file is called "tf300t-xubuntu-rootfs.tar.gz" and can be found here. Expand this into the partition you want to use for xubuntu 14.04. It is recommendable that you replace the file "/lib/firmware/nvram.txt" with you own version from your own machine at "/data/misc/wifi/nvram.txt" in Android.
This associated kernel is also in the rootfs at "/boot/vmlinuz-3.1.10". The initial ramfs is the file "/boot/initrd.img-3.1.10". This assumes linux is in first partition "mmcblk1p1" of the external micro sd card. The username is "ubuntu" with password "ubuntu".
If you want to use a different kernel (I hope other kernels will work too, please report!) then replace the module files under "/lib/modules" and possibly some firmware files under "/lib/firmware" as necessary. Also (!) put the kernel config file in "/boot/config-3.1.10". Then enter the rootfs via chroot and generate a new initrd.img via "update-initramfs -c -k 3.1.10". It will be replace the provided one.
Also, if you want to put this on a different partition edit "/etc/initramfs-tools/conf.d/specify_root_device" accordingly and generate a new initrd.img as described above.
As before I assume here that you know what to do with the kernel and the initrd.img...
Happy testing!
---
md5sum for "tf300t-xubuntu-rootfs.tar.gz" is: 46639d3af438e9c856d5951a321e203b
---
UPDATE: Here is an alternative download link for the rootfs which might provide faster download speed. Thanks to Graiden05!
@Geometry
Thank you a lot for your effort! I have a question tho, is it possible to run your rootfs and have dualboot? The best way would be to use dualboot kernel posted somewhere in the topic. If it's possible, can you briefly write how to do it?
Geometry said:
Sorry for being very brief in this respect. One way to install the kernel would be to use the "abootimg" tool to combine the kernel with a initrd.img file into a boot image, then convert this to a blob file using "blobpack" and then flashing this to the tablet. However, this would leave you unable to run any other OS/ROM (such as any Android). So this is probably not what you want. Instead you want some multiboot/multirom system. What I use myself is a modified version of the boot kernel from the main thread which starts a script that gives me a menu and then boots the kernel/initrd.img I select via kexec-hardboot. To "install" a kernel/initrd.img you just have to store them at a place where this script can find them. If I have time I might describe my particular setup in more detail later. But for the moment my main intention is to have those that already have a setup like this be able to test a full xubuntu 14.04. Then, with the help of those experts it will be easier to generate a way to make this accessible to a large number of users.
Click to expand...
Click to collapse
thanks
actualy converting it all to a blob file really is what I want to do. what is this program blobpack? I have googled it and didn't get much.
phonegeekjr said:
thanks
actualy converting it all to a blob file really is what I want to do. what is this program blobpack? I have googled it and didn't get much.
Click to expand...
Click to collapse
OK, so I assume you know how to use "abootimg" to create a boot image. "blobpack" converts this into a blob file that you can flash to the staging partition. For the blob tools see this thread. However, I had problems with the version of "blobpack" from that thread. Instead, a different version of "blobpack" worked for me. I got this by going to the cyanogenmod web site and following the instructions to built cyanogenmod for the tf300t. In the build process not only cyanogenmod is built, but various tools as well. This includes a version of blobpack, called "blobpack_tfp". This worked for me. Note that I did this almost a year ago. So I am not sure an up to date version of cyanogenmod yields the same. If you are just after the blobpack tool, downloading the complete source and building cyanogenmod is a huge overkill of course. But I guess you could browse through their sources online and find exactly what you need. Hope this info helps!
mentosso said:
@Geometry
Thank you a lot for your effort! I have a question tho, is it possible to run your rootfs and have dualboot? The best way would be to use dualboot kernel posted somewhere in the topic. If it's possible, can you briefly write how to do it?
Click to expand...
Click to collapse
I don't know of the rootfs works with this dualboot kernel. Actually, it would be great if somebody could test this! How to adapt the rootfs to another kernel is sketched in the post. However, some of the patches described here and not included in that kernel might be necessary for xubuntu 14.04 to work. But I'm not sure...
Another possibility would be to modify the kernel I described here for dualboot (or multiboot). This would require an additional kexec-hardboot patch and a modification of the initrd.img to include the kexec binary and a script that offers the boot menu.
---------- Post added at 17:01 ---------- Previous post was at 16:18 ----------
I have now announced the xubuntu 14.04 rootfs described in previous posts on the main thread here. I would like to encourage people to continue discussion there as I think that is the more appropriate place.
Hi
i would like to install xubuntu on my tablet.
I have not yet figured out what the starting point.
I currently have installed a cm11 official rom.
what i can do now? which are the steps to make dualboot working?
I can install android on the internal memory and xubuntu in sd card?
How can i make this work? I've to many doubts to start flashing and install stuffs right now.
Thanks in advance.

Categories

Resources