[Q&A] Ubuntu on the Transformer (eMMC install)

Search This thread

Ke1evraTi

Senior Member
Oct 7, 2010
148
22
Has anyone got a compiled kernel and initrd.img with the sound-fix patch by rdnetto as described in the dev thread?
http://xdaforums.com/showpost.php?p=22740699&postcount=103

I haven't set up the kernel compile yet and the OP doesn't seem to have been updated since Nov 2011. Or have I missed somewhere where kernel updates are posted?

Since the kernel is still experimental you have to compile it on your own. Its not very difficult but may take a while if done on the TF.

Jhinta's new kernel is seperate and looks very promising but still has some bugs such as sound not working. It also seems to not be compatible with 12.04 which brings fixes such as proper battery output.
 

sebbo90

Senior Member
May 10, 2009
411
23
I have searched through this thread and through the wiki, so I hope I don't get flamed here. To what extent is hardware acceleration working? Is it on par to say the ac100 running ubuntu? thanks
 

PierreZabell

Member
Mar 5, 2012
10
0
Battery Status

Hello Forum,

I have now installed ubuntu on my transformer prime, but i am having problems viewing my battery status, is there any way to view it? Maybe in terminal? Seams like acpi is not on my filesystem.
 

jrohwer

Senior Member
Mar 4, 2011
424
286
MAC address of wlan0

This is using lilstevie's original 2.6.34.4 kernel with the loopmount method on a SBKv2 device and it is working nicely. However, I've noticed that the MAC address of my wifi interface (wlan0) differs between Ubuntu and Android. The wifi works fine under Ubuntu but the problem is that at work devices need to be registered by MAC for wifi and I can only register one MAC address per device, so at the moment I can't use wifi at work under Ubuntu.

I've tried the usual way of spoofing a MAC:
# ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx

Also tried doing it in NetworkManager which has a field for entering the MAC.

Neither option seems to have an effect and the MAC address is not changed. Any ideas?
 

lilstevie

Senior Recognized Developer
Apr 17, 2009
1,339
1,040
This is using lilstevie's original 2.6.34.4 kernel with the loopmount method on a SBKv2 device and it is working nicely. However, I've noticed that the MAC address of my wifi interface (wlan0) differs between Ubuntu and Android. The wifi works fine under Ubuntu but the problem is that at work devices need to be registered by MAC for wifi and I can only register one MAC address per device, so at the moment I can't use wifi at work under Ubuntu.

I've tried the usual way of spoofing a MAC:
# ifconfig wlan0 hw ether xx:xx:xx:xx:xx:xx

Also tried doing it in NetworkManager which has a field for entering the MAC.

Neither option seems to have an effect and the MAC address is not changed. Any ideas?

yeah enter your mac address into /lib/firmware/nvram.txt and reload the wifi module (or reboot) the issue is when in android a service pokes the wifiaddr into the wifi chips ram, but in this environment it uses the one burned into hardware
 
  • Like
Reactions: jrohwer and jozka.1

jrohwer

Senior Member
Mar 4, 2011
424
286
yeah enter your mac address into /lib/firmware/nvram.txt and reload the wifi module (or reboot) the issue is when in android a service pokes the wifiaddr into the wifi chips ram, but in this environment it uses the one burned into hardware

I assume it is the commented out entry in /lib/firmware/nvram.txt:
#macaddr= ...

No joy here. When entering a MAC address there and uncommenting, it is not applied, either when unloading and reloading the kernel module, or when rebooting.

Incidentally:
1. After unloading and reloading the kernel module, the interface appears as eth0 in ifconfig, not wlan0. It does however still connect.
2. The file /lib/firmware/nvram.txt has DOS line endings, I changed these to UNIX line endings but it had no effect.
3. There is a file with virtually identical content, /lib/firmware/brcm/bcm4329-fullmac-4.txt. Specifying the MAC address in that file also has no effect.

Can this actually be done?

---------- Post added at 03:06 PM ---------- Previous post was at 02:51 PM ----------


OK to answer my own post, I sorted it out. I took a look at the file /data/misc/wifi/nvram.txt under Android. Turns out the file was missing a switch:
nvram_override=1

Once this line is included in /lib/firmware/nvram.txt, the MAC address gets applied :)
 
Last edited:

jrohwer

Senior Member
Mar 4, 2011
424
286
BTW, I fixed the audio (the speakers work properly now). It requires a kernel patch, so you can either wait until the next stable release or grab the patch from the dev thread (hopefully lilstevie will merge it into the git soon) and compile it yourself.

Can't seem to get this to work. I compiled the kernel (2.36.6.4) with rdnetto's patch (using codesourcery cross compiler) and the default tf101_gnulinux_defconfig. The compile went without errors, and the kernel boots fine. But in Ubuntu there is still no sound form the speakers.

dmesg keeps giving me message like:
Code:
[ 1032.363869] HEADSET: No headset plug-in
[ 1032.363882] Headset disconnected, enable internal Mic(DMIC)

syslog has similar entries
Code:
Apr 26 16:31:45 jr-tf101 kernel: [ 1032.653947] HEADSET: No headset plug-in
Apr 26 16:31:45 jr-tf101 kernel: [ 1032.653962] Headset disconnected, enable internal Mic(DMIC)

Interestingly the internal mic DOES work, and I can record my voice with Sound Recorder. Only the playback doesn't work. Have tried all the sound settings in gnome-control-center. It picks up the tegra device but when I try to test the speakers, nothing.

Any pointers? I'd really like to get this working, means I could use my TF as a replacement laptop when travelling....

BTW this is the kernel without HW acceleration.
 

rdnetto

Senior Member
Jul 3, 2011
317
96
Can't seem to get this to work. I compiled the kernel (2.36.6.4) with rdnetto's patch (using codesourcery cross compiler) and the default tf101_gnulinux_defconfig. The compile went without errors, and the kernel boots fine. But in Ubuntu there is still no sound form the speakers.

dmesg keeps giving me message like:
Code:
[ 1032.363869] HEADSET: No headset plug-in
[ 1032.363882] Headset disconnected, enable internal Mic(DMIC)

syslog has similar entries
Code:
Apr 26 16:31:45 jr-tf101 kernel: [ 1032.653947] HEADSET: No headset plug-in
Apr 26 16:31:45 jr-tf101 kernel: [ 1032.653962] Headset disconnected, enable internal Mic(DMIC)

Interestingly the internal mic DOES work, and I can record my voice with Sound Recorder. Only the playback doesn't work. Have tried all the sound settings in gnome-control-center. It picks up the tegra device but when I try to test the speakers, nothing.

Any pointers? I'd really like to get this working, means I could use my TF as a replacement laptop when travelling....

BTW this is the kernel without HW acceleration.

I assume you're using the kernel from lilstevie's git.
Have you tried running alsamixer? IIRC, something was disabled by default in it - we discussed it earlier in that thread.

Admittedly, I used KDE and never tested it under Gnome, but that shouldn't be relevant. (Don't know which DE Braernoch used.)
 

jozka.1

Senior Member
Apr 9, 2011
216
91
I'm using my own image - armhf, there will not probably work HW acceleration?

I tested sound, wifi, touchapad + keyboard, touchscreen, battery status in tray and everything works.

Flashable package for CWM - SBKv2 - mount loop from internal memory > /sdcard/ubuntu.img
 

Attachments

  • Ubuntu31.zip
    6.8 MB · Views: 2,286
  • Like
Reactions: eng.stk

Jhinta

Senior Member
Dec 20, 2010
704
276
I'm using my own image - armhf, there will not probably work HW acceleration?

I tested sound, wifi, touchapad + keyboard, touchscreen, battery status in tray and everything works.

Flashable package for CWM - SBKv2 - mount loop from internal memory > /sdcard/ubuntu.img

there is a driver for that !!!!! how dit you change it to hf? -march=armv7-a or -mhard-float
 
Last edited:

jrohwer

Senior Member
Mar 4, 2011
424
286
It works for me.

Sound only works with headphones or with speakers? - yes, speakers works!

Hey jozka
Can you post a zip of your initrd separately, i.e. not compiled into the kernel? I would like to change the mount point for the /dev/mmcblk-p7 partition. I find that when I mount it to /media it interferes with the mounting of other devices to the /media directory by the hal daemon (e.g. new SD card or USB stick plugged in).

(I'm running successfully on a SBKv2 device with loopmounted rootfs and the loop is setup in the initrd, but that is on a 2.6.36 kernel w/o HW accel. I'd like to try the same setup with the new 3.1.10 kernel. Or can you use the same initrd as for 2.6.36 kernel?)
 

ssciberras

Senior Member
Feb 29, 2012
133
5
I'm using my own image - armhf, there will not probably work HW acceleration?

I tested sound, wifi, touchapad + keyboard, touchscreen, battery status in tray and everything works.

Flashable package for CWM - SBKv2 - mount loop from internal memory > /sdcard/ubuntu.img
Remind me, the modules folder - what do I do with it ? Uncompress it to lib dir?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 66
    This thread is for help and support related to ubuntu on the eeepad transformer, all questions not related to development should be asked here, please be friendly and do not flame each other or I will request the thread be closed.

    Download links are in the third post.

    There is a wiki entry here that has a bit more detailed explanation. Please note though that as it is a wiki information
    quoted in there may or may not be entirely accurite.

    you will need to download an nvflashable rom, like prime.



    Please read the README before attempting this. The readme is below as well as in the kit, YOU WILL LOSE DATA.

    Download links are in the second post.


    OLiFE for the ASUS transformer
    ------------------------------------------------------------------

    (c) 2011 Steven Barker <lilstevie@lilstevie.geek.nz>

    This package should have only been linked to from xda-developers
    or rootzwiki if you got the links to this package from anywhere
    but those sites please send an email to the above email
    address with the subject: "unauthorised posts"

    DISCLAIMER
    ------------------------------------------------------------------

    Steven Barker (lilstevie) nor anybody will take any responsibility
    for any damage, data loss, fire, death of a loved one, or loss of
    data resulting from using this mod for your device. Using this mod
    may void your warranty.

    NVFLASH
    ------------------------------------------------------------------

    nvflash is the intellectual property of nvidia, and remains the
    property of nvidia. Any questions or queries regarding the usage
    and licence of nvflash should be directed to nvidia.

    abootimg
    ------------------------------------------------------------------

    abootimg is by Gilles Grandou <gilles@grandou.net> and is
    unmodified. The source is available from online at
    http://gitorious.org/ac100/abootimg

    usage
    ------------------------------------------------------------------

    Usage has changed since the release of the last kit, please read
    these instructions carefully, as the install method is a little
    more complex, (but easier once you use it).

    If you downloaded OLiFE.tar.gz you will need to inject the android
    rom and ubuntu image. You can use any nvflashable rom with this.
    I recommend that you use prime as that is the configuration that
    I have tested myself, and the ROM that I support for use with this
    device. You can download the ubuntu image from
    http://lilstevie.geek.nz/ports/ubuntu.img.gz.

    If you downloaded OLiFE-Prime-Edition.tar.gz you will not need to
    download the ubuntu image or an nvflash rom as they are seeded into
    the image.

    Install instructions:

    1) Download the specific flavour of OLiFE that you want to use, and
    extract it with "tar xvf <filename>".

    2) If needed inject android rom and ubuntu image.

    3) From the directory that OLiFE was extracted in run the main script
    with the command ./OLiFE.sh.

    4) Read the text that comes up and answer the question it asks.

    5) Follow the menu to the option you want (below is a breakdown of
    what each menu item is) and follow the instructions prompted. (also below
    is instructions on how to get into the modes requested).

    Menu items:

    1) Backup Menu:

    1) Full Backup (stock)
    - Full backup (stock) takes a full backup of a stock
    android system. This gives you an option to also back
    up your user data(this will take a while).
    2) Full Backup (ubuntu)
    - Full backup (ubuntu) takes a full backup of a system
    that dualboots android and ubuntu, this backs up your
    system, and the ubuntu image. This gives you an option
    to also back up your user data(this will take a while).
    3) User data only
    - This backs up the user data partition on your device.
    (This option takes a while)
    4) Android ROM
    - This option backs up the android system only. This
    option generates all the files (minus bootloader, and BCT)
    required to flash a rom via nvflash.
    5) Ubuntu Install
    - This option backs up the ubuntu install on your device.
    2) Flash Device:

    1) Dualboot:
    - This option will install ubuntu to your device in a
    dualbooting configuration with android. During the
    installation process it asks you which OS you would like
    to boot by default.
    2) uboot (linux only):
    - This option will install ubuntu with u-boot and the
    ChromeOS kernel that supports acceleration. This option
    is currently unavailable, but should be available soon.
    3) asus boot (linux only):
    - This option will install ubuntu with the asus bootloader
    with this configuration you will use all the eMMC for ubuntu
    and there will be no android system installed on your device.
    4) stock:
    - This option will partition the device in a stock way and
    install the android system that is in ./images. Use this
    option if you no longer want ubuntu on your device.
    3) Update Device:

    1) Android Kernel:
    - This option will update the android kernel on your device
    with the boot.img from ./images/. This allows you to install
    your own kernel on the device for android rather than the one
    that comes with your chosen rom.
    2) Ubuntu/Linux Kernel:
    - This will update the ubuntu kernel on your device to the version
    included in this flashkit. This option is for updating just the
    kernel with nvflash rather than using the blob method. This method
    is also good for if you flash a bad ubuntu kernel to the device.
    3) Android ROM:
    - This option will update the android rom on the device with the
    one from ./images/. This is good for if the ROM you use is updated
    or you would like to change ROMs and there is an nvflash image for it.
    This option does not destroy your data.
    4) Ubuntu Rootfs:
    - This will update your ubuntu image on the device. This is destructive
    to data stored in the ubuntu image.
    5) Advanced (Unsupported):
    - Any option in this menu is not supported and should be considered
    unstable. There may be bugs in these options and they are not maintained
    at this point in time.

    1) Flash ChromeOS Kernel (Primary Boot):
    - This option will flash the ChromeOS kernel to the primary boot
    partition. This option may not currently work in it's current
    configuration.
    2) Flash ChromeOS Kernel (Secondary Boot):
    - This option will flash the ChromeOS kernel to the secondary boot
    partition. This option may not currently work in it's current
    configuration.
    3) Update Uboot Partition:
    - This option will update the u-boot boot partition that u-boot
    reads the kernel and boot script from. This option does work if
    you have installed u-boot by compiling it from source and installed
    it yourself.
    4) Flash ClockworkRecoveryMod:
    - This option allows you to temperarily flash CWR to the device so
    you can update the installed rom. It backs up the current kernel in
    the recovery kernel position and then flashes CWR. When you have finished
    using CWR you then push any key and put the device back in APX mode and
    it will restore the kernel that was in that position. (This only works if
    android is your primary boot option at this time).

    4) Inject Firmware:

    1) Bluetooth firmware (default install):
    - This option will inject the Bluetooth firmware from the
    android ROM located at ./images/ in to the ubuntu of your
    currently running system.
    2) Bluetooth firmware (CrOS Kernel):
    - This option will inject the Bluetooth firmware from the
    android ROM located at ./images/ in to the ubuntu of your
    currently running system and flashes the proper u-boot kernel
    if you no longer need adb support.

    5) Onscreen Keyboard:
    - This runs OnBoard so that you can run through oem-config properly
    you only need to use this option if you do not have a keyboard dock
    and on the first boot.

    1) Standard Kernel:
    - This will invoke oem-config on the standard kernel installed
    on the device.
    2) ChromeOS Kernel:
    - This will invoke oem-config on the u-boot kernel that is
    installed on the device and flashes the proper u-boot kernel
    if you no longer need adb support.

    Device Modes:

    APX Mode:
    -This mode is used by nvflash to write files to the eMMC device.
    To boot in this mode you press Power and Vol-Up.

    Recovery Mode:
    - This mode is where CWR or Asus recovery normally lives, but is
    replaced by the secondary OS in the dualboot configuration.
    To boot in this mode you press Power and Vol-Down, then Vol-Up when prompted.

    Normal Boot:
    -This mode is where android normally lives.
    To boot in this mode you press the Power button until the screen turns on.
    25
    Changelog
    ------------------------------------------------------------------

    1.2a - Release name: Odyssey

    * New name for kit: OLiFE
    * New menu system
    * Updated README
    * Better handling of platform detection
    * Bluetooth support in ubuntu.img
    * Preliminary support for ChromeOS kernel
    * Preliminary support for uboot
    * Fixed touchpad
    * Fixed network manager
    * Updated to ubuntu oneiric
    * More options for flashing and updating
    * OTB Wireless support (No more injecting)
    * Smaller ubuntu.img for faster upload to device
    * Auto resizing of rootfs on first boot
    * Larger partition size (6GB) for ubuntu
    * Refactored to more easily between devices
    * Maybe something else I have missed

    1.1 - Release name: Daedalus

    * Firmware injector for BT and wifi firmwares


    1.0 and silent updates - Release name: Prometheus

    * Support for x86_64 linux distributions
    * Updated README for release on xda-developers
    * Fixes to install scripts
    * Initial Release
    8
    Multiboot by cmw.zips

    This will restore cwm on recovery partition.
    And multiboot by flashing Ubuntu.zip or Android.zip

    Create flash-recovery.sh in flashkit dir !!

    The code below wil not work unless you provide some info on witch flash mode you used !!!!!
    Like me i have selected flash-linux-android.sh,
    View it and find witch --config file it use as you can see below.

    --->--configfile ./flash/android-linux.cfg <---

    Code:
    #!/bin/sh
    nflash --bct ./images/transformer.bct --setbct --configfile ./flash/android-linux.cfg --bl ./images/bootloader.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync
    nflash -r --download 5 ./images/recovery.img

    To Make this code above work replaced nflash with ./nvflash -> then sudo sh flash-recovery.sh

    Android <-- Prime 1.7 kernel !! you can select any kernel you want !!
    MD5 : 97cf64f6d5698276bde1d8657ec80cef

    Ubuntu
    MD5 : 40c9f82c30e0fd8230c712e23f2e3597
    7
    Downloads:

    RootFS md5sum(1a9fa8a698e4a96245a3c08511841eb4)
    OLiFE md5sum(c30263fd8271a23bb211fd9fdd69fa45)
    OLiFE Prime Edition md5sum(767779ccfa200e5e00b2f1e33a3d73a9)

    Sources:
    http://gitweb.lilstevie.geek.nz
    To clone the repos "git clone git://lilstevie.geek.nz/$(name of repo).git"
    6
    Simple Version

    Here's a simple nvflash package I put together to make things easy. It uses Jhinta's CWM files (incl.) and Prime 1.7. Just add ubuntu.img (from the OP) and run download-ubuntu.sh. (You'll still need to run the firmware injection script for drivers though.)

    http://www.multiupload.com/6GZSLRBP8S

    MD5: 843f964141ac96423c2fcdfc26092050