Linux on TF300?

Search This thread

Citruspers

Senior Member
Jan 10, 2012
97
20
www.westerbeek.biz
Good to hear you didn't brick it. Any chance you're going to be working on Debian for the TF300T? It has great ARM repos and is probably one of the best-supported distro's (pretty much anything for Ubuntu applies, but without the bulk that comes with it).
 

AEblefisk

Member
Aug 18, 2012
21
1
Odense
I think I'll proceed with caution now, so don't expect anything in the near future. First of all I have to understand why CWM couldn't restore the backup, it works flawlessly on my HTC Desire. I fear Asus over-complicated things to make the tablet tamper-proof and even an official unlock tool can't remove all the complications.
When I'm more confident I won't brick it, I'll start looking at which kernel to try next. I think making a kernel which will fit both hardware and linux is the major problem. If that can be solved then using another distribution should be possible.
 

aachour

Member
Sep 20, 2012
16
1
Stockholm
Hello!

Quick question about the different distribution made for arm processors.
Do they include the same package managers as their X86 counterparts?
Can we use linux the same way we would with a standard computer ? Are the mechanisms all the same (systemd, SElinux...)
(I'm aware package may not be available for arm processors, but appart from that?)

If that's the case I would be ready to dump android and embrace a full linux TF300!

thanks
 

rickavers42

Member
Dec 18, 2011
27
6
Youngstown
Arch Linux

Hi Guys,


I am looking for linux working on TF300T, is there anyone who has anything working? I am planning to start with linux for TF300T, I want to know if anyone has tsarted, how do I collaborate and not reinvent the wheel. I have questions regarding what bootloader to use, lilo / grub / u-boot as Nvidia has a ubuntu distribution for its chip, which uses U-boot. Lot of questions can any dev please reply, so I can think of a place to start.

Thanks

Sent from my ASUS Transformer Pad TF300T using xda premium

Not sure if you found anything interesting or not, but CB22 has been working on arch linux on TF300T and TG and it boots up and has a working web browser basically. It's a great start, but it needs to be more stable. Here is a link to his dev thread:
http://xdaforums.com/showthread.php?t=1918849&page=11

I hope we can all throw in ideas and get something good working for us.

Edit: Sorry, didn't realize arch was mentioned right above my post...
 
Last edited:

internetional

New member
Jan 28, 2013
2
0
Not sure if you found anything interesting or not, but CB22 has been working on arch linux on TF300T and TG and it boots up and has a working web browser basically. It's a great start, but it needs to be more stable. Here is a link to his dev thread:
http://xdaforums.com/showthread.php?t=1918849&page=11
There is not only working web browser in ArchLinux by CB22, but also a pretty well working multimedia player. And there is a dual-boot kernel for Android and Arch. But my Android often restarts or just hangs with this kernel, so I prefer to use a hybridkernel announced in the same thread.
 

j4hU

New member
Mar 8, 2013
1
0
Also want to have linux (best will be archlinux) running of my rooted tf300t (unblocked, cleanMod 3.4.4), of course with dual boot.
I've studied cb22 post (http://xdaforums.com/showthread.php?t=1918849), but still have some doubts will it work with my device. Also links are not up-to-date.

Could someone please explain what steps should I perform in order to install archlinux as second OS and have dual boot with my CleanMod? I am quite noob in terms of rooting/flashing android devices so any hints will be extremely helpful...
 

Top Liked Posts

  • There are no posts matching your filters.
  • 2
    I have a basic changeroot with gentoo and compiled a kernel and initrd. I wanted to try it out using fastboot (fastboot -i 0x0b05 -c real_root=/dev/sdb1 boot kernel-genkernel-arm-3.3.8-gentoo initramfs-genkernel-arm-3.3.8-gentoo) but it doesn't even try to load the kernel. I get an error 0x120000 on the screen of the TF300. I googled a bit and found out that the TF201 has the same problem, you have to flash a boot image.

    I only know a part of the story here, but here's my findings so far. I never got "fastboot boot" to work on my TF300, always giving me that 0x120000 error. I am under the impression (I MAY BE WRONG) that "fastboot boot" requires a more devloper friendly device (think HTC G1, GNex, anything Google branded).

    That being said, I am curious why you wrote "real_root=/dev/sdb1" as your kernel parameters :)

    How can I make a boot image using the gentoo files? I looked into abootimg but it seems it won't work. At least it won't split up the original images, so I fear it uses another format. Has anybody tried mkbootimg?

    Personally I was able to look at how a recovery image was used and flashed onto a TF300. Without going into the details, I looked at how xplodwild's recovery was being made, and hacked around that recovery to use my own (basically trivial modifications from his).

    To flash my image files, I am using "fastboot flash recovery" with my own recovery, which is basicaly a mkbootimg based image file like you said (you were on the right track), but wrapped around in a BLOB file format (using blobpack / blobunpack, see this xda thread).

    So to answer your question, the only way I found so far to boot my custom kernels and init rootdisks is to flash it onto the device outright.

    BTW: if you were to look at a pre-baked img file, (or, if you had no idea whats the file contents like), you could load the file into a hex editor (I use 'hexer' on ubuntu/debian, thats a command-line one). If you see "SIGNED-BY-BLOB", thats a blob file (a nvidia tegra and/or asus file format). If you see something else (usually starting with "ANDROID.."), thats usually something you can either mount or unpack using linux natively (most probably with "mount -o loop file /mnt/mountpoint")

    EDIT: Slightly off topic, but still for AEblefisk: if you compile your own kernel, i suggest turning on activating the framebuffer tux logo option. More importantly, you could as well try and activate the framebuffer console too, however apparently "fbcon is broken on 2.6.39.4", so says Rayman. But at least, you'd get a hint that your own kernel is loaded and running if you see 4 tuxes on screen (one per core)
    1
    Extracted from http://androidroot.mobi/2012/06/17/ubuntu-on-the-transformer-prime-preview/ regarding Ubuntu on Prime 201...

    It has been a while since the last post about ubuntu on the Transformer Prime. This post is going to explain a few of the new changes, and show a video preview of the system in action.

    There have been a few changes since the last update:

    3.1.10 Kernel -- Asus don’t update the kernel while remaining on the same android major release, so they won’t update the kernel until at least Jellybean, but we have worked really hard to bring us up to the latest kernel. This has given us the ability to use the latest Tegra ULP GeForce binary from nvidia and maintain acceleration with the latest releases.
    Linux as a bootloader -- With some work to the process we have managed to get kexecboot working to give us a boot menu that will boot not only multiple kernels from eMMC, but also to allow booting from USB, SD, and MicroSD. At this point in time the guest kernel also requires two patches, one for speed (it is really slow to boot without this patch, 30sec-5minutes) and the second to copy ATAGS, this second patch is important so that the new initrd and command line get used.
    Ubuntu 12.04 LTS -- The last image was 11.10 which is a little less stable. 12.04 has a new gpower applet which can read the battery levels. 12.04 also includes the mtrack driver allowing the trackpad to work. The biggest change with the new image is the use of armhf over armel.
    LVM -- Turning mmcblk0p8 (/data under android) to an lvm volume group has allowed both android and ubuntu to coexist on the eMMC without needing nvflash for reformatting. This however does require a modification to the android initrd to reflect the change and for the lvm binary to be included so it can mount /data. Ubuntu natively supports booting from logical volumes.

    I know, I know this is TF300 forum, but it seems the TF300 is more similar to the TF201 than the primitive TF101
    1
    Linux and GNU

    It's true, Linux is the OS kernel, but with the word Linux you can also mean the GNU/Linux environment with the kernel and all the applications running on top ("The gimp" or "Libre Office" for example).

    Should be nice to have a GNU/Linux system running on a tablet device; I read that Canonical (Ubuntu) is working on a project for multi-core devices but I don't know about the development stage.


    Linux = kernel. Android runs a Linux kernel. Android IS Linux.

    The two biggest differences between Android and "ordinary" Linux distributions are libc (called bionic in Android) and the lack of a real X server on Android (there is a Java version at .... , but it's wayyyy too slow to get anything done (it's still awesome, though). It needs to be implemented in a lower level language).
    1
    Now I managed to make a blob with the gentoo kernel and ramdisk. It flashes sort of OK with fastboot, sending in 2 seconds, but the write time is 0.016s and it seems nothing is written. I boot into Android when I reboot. (I'm flashing to boot, not recovery). Maybe I'm missing some offset or blocksize parameters?

    I never touched boot so far to tinker around Linux booting, for the simple reason we never use the recovery partition except to flash/nandroid backup (which I rarely do), plus it gave me with Android booting if I dont press the volume button on startup. As far as development went, I think this was a win/win situation, although lilstevie (the guy who did make Ubuntu boot natively on his TF101/200) told me to "never touch recovery, flash boot instead", he was most probably talking about deploying our custom OSes to the world to use.

    Now i'm kinda lost as to why the regular Android boot is being shown up. Having 0 experience with the boot partition (which i thought was similar to recovery), i can't really help you. Maybe you should get on freenode into the #asus-transformer and ask around (Don't let the numbers of nicknames scare you, this is a low activity channel, but the most knowledgables people are hanging in there. Just be sure to do your homework (aka Google etc) before asking, you should be fine :) )

    As a sidenote, you should probably use some (most?) of the kernel parameters used in /proc/cmdline from a live Android OS. Most specifically the "tegraboot=sdmmc gpt gpt_sector=..." part. This makes sure your kernel reads the partition table at the right (unusual) location instead of reading where ever it was on a regular system (the first 512 bytes of the drive? don't quote me on this). I suppose this doesn't prevent the kernel from booting, but it will make the SSD partitions visible from your OS.

    The real_root is for the gentoo initrd to find the real root filesystem on microSD. I have no idea if it will turn out to be mmcblk1p1, sdb1 or something completely different. I'll probably have to correct that once my initrd boots.

    Yes I'm definitely trying to make the framebuffer logos work. Seeing that lineup of 4 tuxes is a goal in itself :D
    I'm using 3.3.8 in gentoo so I hope fbcon is fixed.

    Would that be a 'vanilla' 3.3.8? I'm asking because, in case you don't know, I think you can't have much success using the regular kernel from kernel.org, and hope it will detect all the devices (specifically touch, sensors, wifi, gps(?), etc). It will maybe boot (your guess is as good as mine), but it will surely lack a few things here and there. That's why there are a ton of devices specific github kernel code base here and there: it's basically a 'stock' kernel source code, with the constructor's additions to make their various devices work, with community enhancements on top of all that. I may be wrong on the following (if there are any veterans reading this, feel free to call me a noob and point me to the right direction), but if you try to compile ASUS' kernel source code for the TF300, funnily enough everything compiles silently UNTIL it gets to the Tegra parts where it gets noisy with over 9000 warnings all along (but it compiles). That led me to believe that 1) NVidia or ASUS are lousy coders :) and 2) They added (most likely) OR modified a bunch of code to the stock kernel tree to make it 100% functioning on their devices.

    All that wall of text only to say that I assume that the broken fbcon issue is most probably due to either ASUS/NVidia additions to the kernel code, or a bug from the 'stock' kernel code, and i'm assuming it was fixed in later versions (which lacks device's constructor modifications then again).

    --

    Offtopic: it seems ASUS has released the kernel source code for TF300 for their JB update! Compile all the things!! :D (And hope fbcon as been fixed so I can see something out of the screen)