AC100

Differences between revisions 25 and 98 (spanning 73 versions)
Revision 25 as of 2011-09-20 18:54:06
Size: 7618
Editor: a88-114-249-161
Comment:
Revision 98 as of 2021-07-13 10:07:57
Size: 11359
Editor: ogra
Comment: fix IRC links to point to libera
Deletions are marked like this. Additions are marked like this.
Line 4: Line 4:
This page collects information necessary to get a working Ubuntu port on the AC100 using '''only open source''' components and everything in the official archives (or temporarily in PPAs) Ubuntu on AC100 is currently an official demonstration of the Ubuntu ARM port and works fairly well. This page collects information necessary to get a working Ubuntu 12.04 port on the AC100.
Line 6: Line 6:
<<TableOfContents(2)>>

----


== Installer ==

=== Prerequisites ===


{{attachment:ac100-install.jpg|Installation prerequisites|align="top"}}

Make sure you have these:

<<TableOfContents(3)>>


== Installing Ubuntu 12.04 or Lubuntu 12.10 on the AC100 ==


=== Installation requirements ===

{{attachment:ac100-install.jpg|Installation equipment|align="top"}}
Line 19: Line 17:
 * host computer with linux (virtual or physical)
 * usb-stick or sd-card (min. 1GB)

=== Oneiric Installer ===

There are two AC100 related files in the daily image directory:
http://cdimage.ubuntu.com/daily-preinstalled/current/
 *[[http://cdimage.ubuntu.com/daily-preinstalled/current/oneiric-preinstalled-desktop-armel+ac100.bootimg|Bootimage]]
 *[[http://cdimage.ubuntu.com/daily-preinstalled/current/oneiric-preinstalled-desktop-armel+ac100.tar.gz|Preinstalled rootfs]]
Get them both and make sure that the [[http://cdimage.ubuntu.com/daily-preinstalled/current/MD5SUMS|md5sum]] is alright after download.

=== nvflash ===

The bootimage needs to be flashed using nvflash to partition number 6. This image when booted will set up the internal storage using a tarball provided on a USB stick or SD card.
You need the NVidia proprietary nvflash tool to write to the AC100 storage via a mini-USB connecting the netbook and a host x86 computer.
 * [[http://ac100.grandou.net/nvflash#debian_ubuntu_package|Install nvflash debian package]]
 * Host computer with linux (virtual or physical)
 * Usb-stick or sd-card (min. 1GB)
 * About 1-2h of your life (depending on the download-time)


=== Files to download ===

For the installation, you will need to download these things:

'''12.04 (Precise Installer)'''

There are two AC100 related files in the [[http://cdimage.ubuntu.com/releases/12.04/release/|12.04 release directory]]:

 . [[http://cdimage.ubuntu.com/releases/12.04/release/ubuntu-12.04-preinstalled-desktop-armhf+ac100.bootimg|Bootimage]]
 . [[http://cdimage.ubuntu.com/releases/12.04/release/ubuntu-12.04-preinstalled-desktop-armhf+ac100.tar.gz|Preinstalled rootfs]]
Get them both and make sure that the [[http://cdimage.ubuntu.com/releases/12.04/release/MD5SUMS|md5sum]] corresponds after the download.

'''12.10 (Quantal Installer)'''

With the 12.10 release the AC100 image switched to Lubuntu as the default desktop.
The 12.10 release is also the first release where the Tegra binary driver works out of the box and is properly included in the multiverse component of Ubuntu (see below for installation instructions).

There are two AC100 related files in the [[http://cdimage.ubuntu.com/lubuntu/releases/quantal/release/|12.10 release directory]]:

 . [[http://cdimage.ubuntu.com/lubuntu/releases/quantal/release/lubuntu-12.10-preinstalled-desktop-armhf+ac100.bootimg|Bootimage]]
 . [[http://cdimage.ubuntu.com/lubuntu/releases/quantal/release/lubuntu-12.10-preinstalled-desktop-armhf+ac100.tar.gz|Preinstalled rootfs]]

'''nvflash'''

The bootimage needs to be flashed via a mini-USB cable and using the nvflash tool.<<BR>>
This image when booted will set up the internal storage using a tarball provided on a USB stick or SD card.

 . [[http://ac100.grandou.net/nvflash#debian_ubuntu_package|Install nvflash using a debian package]]<<BR>>

The link contains instructions on how to easily install nvflash to your current debian-based linux-distro.
Line 38: Line 56:
The installation is done in two phases:


'''Flashing the bootimage'''

 * Make sure the battery is full on the AC100, or that the charger is connected.
Line 39: Line 63:
 * Connect the mini-usb from the AC100 to your host computer.
 * Put netbook in recovery mode by booting with ctrl and esc buttons held down. The screen stays off while the power led lights up.
 * On your host computer, open a terminal, go to the path where you extracted nvflash and run:
 {{{nvflash --bl /usr/lib/nvflash/bootloader.bin --download 6 /path/to/oneiric-preinstalled-desktop-armel+ac100.bootimg}}}

 '''NOTE''': the path and name of bootloader.bin might vary, the guide uses version from [[http://ac100.grandou.net/nvflash#debian_ubuntu_package|http://share.grandou.net]]
 * Copy oneiric-preinstalled-desktop-armel+ac100.tar.gz to a USB stick as a regular file on the first partition. FAT or EXT2/3/4 should work.
 '''Do not unpack or dd it, simply copy!''' Make sure the [[http://cdimage.ubuntu.com/daily-preinstalled/current/MD5SUMS|md5sum]] is alright after copying to the media.
 * Connect the mini-usb from the AC100 to your host computer. The mini-usb socket is on the right side, left of the power-connector.
 * Put netbook in recovery mode by booting with CTRL and ESC buttons held down. The screen stays off while the power led lights up.
 * On your host computer, open a terminal and run:
 {{{nvflash --bl /usr/lib/nvflash/fastboot.bin --download 6 /path/to/lubuntu-12.10-preinstalled-desktop-armhf+ac100.bootimg}}}<<BR>>''NOTE:'' the path and name of fastboot.bin might vary, the guide uses version from [[http://ac100.grandou.net/nvflash#debian_ubuntu_package|http://share.grandou.net]]
 * Once nvflash is finished and prints out a message stating success, turn off the AC100 by pressing on the power button for several seconds.

=== Upgrades ===

 * There is a bug in the tarball installer that marks the abootimg package as automatically installed without dependencies, this causes removal of the (essential) abootimg package during upgrades. To work around that bug run:
 {{{
sudo apt-get install abootimg
 }}}
 before starting the upgrade. This will mark the package as manually installed and prevent it from being removed.

'''Installing the preinstalled rootfs'''

 * Copy {{{quantal-preinstalled-desktop-armhf+ac100.tar.gz}}} to a USB stick as a regular file on the first partition. ''NOTE:'' DO NOT UNPACK OR DD THE TARBALL, JUST COPY! Make sure the [[http://cdimage.ubuntu.com/releases/12.04/release/MD5SUMS|md5sum]] is alright after copying to the media.
Line 48: Line 81:
  '''NOTE''': Oneiric is still in beta, and random errors might (read: probably will) occur.

----


'''Notes on installation'''

 * To do an install to external media the installer also supports installing from USB key to SD card (not the other way around !). To do such an install put the tarball on the USB key and make sure an empty SD card is in the slot before starting the installation, the installer will offer you to install to a partition on mmcblk1 (SD card) instead of mmcblk0 (internal eMMC drive).
 * Although the installer offers the possibility to encrypt your home, this does not work. See the end of this document for instructions on enabling encryption.
 * Suspend/resume is unstable.
 * The package cache will be stuck for a while after installation since update-manager by default only updates the package info once a week. Updates will start appearing after a day or so.
 * Some people have reported issues seeing a "hash sum mismatch" error for package installations.
   * To fix this, run {{{sudo rm /var/lib/apt/lists/* /var/lib/apt/lists/partial/*}}}. This will clear out the package list cache, then you can run {{{sudo apt-get update}}} and update the package list normally.
   * You can alternatively wait a couple of days for the cache to expire.
Line 56: Line 97:
''phh'' who provided a solution based on (now) older L4T releases,
''ogra'' who made Ubuntu work without proprietary daemon,
''marvin24'' who has put effort in porting Chrome OS to the AC100,
''phh'' who did the initial bringup of a working linux kernel on the ac100 and made Linux''''''4Tegra work on the older root filesystems
''ogra'' who built all Ubuntu root filesystems and the official oneiric and precise images,
''marvin24'' who has put effort in porting the Chrome OS kernel to the AC100,
Line 64: Line 105:
Line 67: Line 109:
---- == More information ==
Some bits of useful information about your Ubuntu system on a Toshiba AC100 can be found in [[https://answers.launchpad.net/ac100/+questions?field.search_text=&field.sort=RECENT_OWNER_ACTIVITY&field.sort-empty-marker=1&field.actions.search=Search&field.status=OPEN&field.status=NEEDSINFO&field.status=ANSWERED&field.status=SOLVED&field.status=EXPIRED&field.status-empty-marker=1|the ac100 questions&answers at Launchpad]].
Line 73: Line 116:
The AC100 is an nVidia Tegra2 based device which has Android 2.1 as factory default. It has dual ARM Cortex-A9 cores at 1 GHz and nVidia GPU technology on its System On Chip. Some models come with 3G modems and the eMMC flash storage comes in various sizes. The AC100 is an nVidia Tegra2 based device which has Android 2.1 as factory default. It has dual ARM Cortex-A9 cores at 1 GHz and nVidia GPU technology on its System On Chip (SoC). Some models come with 3G modems and the eMMC flash storage comes in various sizes.
Line 76: Line 120:
Line 78: Line 123:
 * HDMI out  * HDMI out - when using the Nvidia driver (with no aoudio yet)
Line 81: Line 127:
Line 82: Line 129:
 * Only 512MB of RAM
Line 84: Line 132:
Features known to work on Ubuntu: webcam, touchpad, 3G modem, WiFi, OpenGL ES (proprietary), indicator LEDs, card reader

Incomplete support: video acceleration
, HDMI out, audio
Features known to work on Ubuntu: webcam, touchpad, 3G modem, WiFi, OpenGL ES (proprietary), indicator LEDs, card reader, audio, suspend/resume, HDMI out (with the proprietary nvidia drivers, no audio yet)

Incomplete support: video acceleration.
Line 90: Line 138:
----
Line 97: Line 144:
The [[https://launchpad.net/~ac100/+archive/ppa|ac100 PPA]] has a kernel that reads the (nvidia-proprietary format) main partition table, so kernel upgrades are possible. The ''flash-kernel'' package in the PPA takes care of this. The [[https://launchpad.net/~ac100/+archive/ppa|ac100 PPA]] has a kernel that reads the (nvidia-proprietary format) main partition table, so kernel upgrades are possible. The ''flash-kernel'' package in the PPA takes care of this (note that all packages from the PPA are integrated since the oneiric images linked above, in oneiric the PPA will only be used for post-release updates of single packages).
Line 100: Line 148:
Line 103: Line 152:
----

== Kernel ==

As of early September 2011 a 2.3.38-chromeos kernel fork is used in Ubuntu and included in the Oneiric archives. It does not support suspend/resume and sound yet.

== Kernel development ==

As of early September 2011 a 2.6.38-chromeos kernel fork is used in Ubuntu and included in the Oneiric archives. It supports suspend/resume and sound from the headphones is working, speakers do not yet. Sound are almost done in 3.1.x/3.8/mainline.
Line 113: Line 161:
----

== Adobe Flash ==

Dropping this library into ~/.mozilla/plugins allows flash playback. It warns though that it is out of date.
http://kotelett.no/ac100/phh/Android2.2/libflashplayer.so

----

== Graphics ==

Latest Linux4Tegra SDK from Nvidia is 12alpha1 for kernel 2.6.38.

=== WebGL ===

Chromium browser v 13 from the Oneiric Ocelot archive works with some WebGL demos if passed
`--use-gl=egl --ignore-gpu-blacklist` at the command line.

http://www.khronos.org/webgl/wiki/Demo_Repository

=== GLES demos ===

The native visual ID for all EGL fbconfigs seems to be returned as 0. This is bug acknowledged by NVidia.

`eglGetConfigAttrib(ed, &config, EGL_NATIVE_VISUAL_ID, &id); //id = 0`

so most GLES apps will not work as there appears to be no visual with that ID.

Example of change needed in es2tri.c from the mesa-utils-extra package

`- visInfo = XGetVisualInfo(x_dpy, VisualIDMask, &visTemplate, &num_visuals);`
`+ visInfo = XGetVisualInfo(x_dpy, VisualNoMask, &visTemplate, &num_visuals);`


=== Screen depth ===

In the Xorg config file, a depth should be set as 16 or else not even the limited support for GLES as seen above is available.

`Section "Screen"` <<BR>>
` Identifier "`''<myscreen>''`"` <<BR>>
` Device "Tegra"` <<BR>>
` DefaultDepth 16` <<BR>>
`EndSection` <<BR>>

----
== Tips and tricks for Ubuntu 12.10 ==

=== Graphics ===

To install the nvidia-tegra binary GLES driver in 12.10 open the Menu and go to "Preferences"->"Software Sources"

{{attachment:menu_shot.png|Software Sources|align="top"}}

Select the most right Tab and click the Radio button for the Tegra2 binary driver.

{{attachment:sw_sources_shot.png|Driver Selection|align="top"}}

'''Note:''' If the radio box goes back to selecting the nouveau driver after attempting to apply changes, ensure that your package cache does not have a "hash sum mismatch" when running {{{apt-get update}}}. To fix this, see instructions in "notes on installation". Additionally, ensure that you have enabled the multiverse repositories (under the "Ubuntu Software" tab).

After the changes were applied, reboot and enjoy the GLES support and working HDMI out.

'''Tip:''' install the glmark2-es2 and mesa-utils-extra packages, they ship the glmark2 test as well as the es2_info and es2gears binaries for GLES.


== Known issues and tips for Ubuntu 12.04 beta1 ==

This section will in time replace the one above.


=== Graphics ===

The nvidia-tegra package is not yet available for armhf. For now, just stay with the default open source driver.
Line 161: Line 192:
IRC: #ac100 on freenode

Mailing list archives: https://lists.launchpad.net/ac100/

Launchpad team: https://launchpad.net/~ac100

----
 * IRC: #ac100 on libera: https://web.libera.chat/?nick=webchat?#ac100
 * Mailing list and archives: https://lists.launchpad.net/ac100/
 * Launchpad team: https://launchpad.net/~ac100
Line 170: Line 198:
Line 171: Line 200:
 * Detailed info, useful for developers and power users: http://ac100.grandou.net/  * Detailed info, useful for developers and power users but not specific to ubuntu: http://ac100.grandou.net/
Line 173: Line 202:
----

Status of the Ubuntu port to the AC100/Dynabook Tegra based netbook

Ubuntu on AC100 is currently an official demonstration of the Ubuntu ARM port and works fairly well. This page collects information necessary to get a working Ubuntu 12.04 port on the AC100.


Installing Ubuntu 12.04 or Lubuntu 12.10 on the AC100

Installation requirements

Installation equipment

  • Mini-usb cable
  • Host computer with linux (virtual or physical)
  • Usb-stick or sd-card (min. 1GB)
  • About 1-2h of your life (depending on the download-time)

Files to download

For the installation, you will need to download these things:

12.04 (Precise Installer)

There are two AC100 related files in the 12.04 release directory:

Get them both and make sure that the md5sum corresponds after the download.

12.10 (Quantal Installer)

With the 12.10 release the AC100 image switched to Lubuntu as the default desktop. The 12.10 release is also the first release where the Tegra binary driver works out of the box and is properly included in the multiverse component of Ubuntu (see below for installation instructions).

There are two AC100 related files in the 12.10 release directory:

nvflash

The bootimage needs to be flashed via a mini-USB cable and using the nvflash tool.
This image when booted will set up the internal storage using a tarball provided on a USB stick or SD card.

The link contains instructions on how to easily install nvflash to your current debian-based linux-distro.

Installation

The installation is done in two phases:

Flashing the bootimage

  • Make sure the battery is full on the AC100, or that the charger is connected.
  • Shut down the AC100.
  • Connect the mini-usb from the AC100 to your host computer. The mini-usb socket is on the right side, left of the power-connector.
  • Put netbook in recovery mode by booting with CTRL and ESC buttons held down. The screen stays off while the power led lights up.
  • On your host computer, open a terminal and run:

    nvflash --bl /usr/lib/nvflash/fastboot.bin --download 6 /path/to/lubuntu-12.10-preinstalled-desktop-armhf+ac100.bootimg
    NOTE: the path and name of fastboot.bin might vary, the guide uses version from http://share.grandou.net

  • Once nvflash is finished and prints out a message stating success, turn off the AC100 by pressing on the power button for several seconds.

Upgrades

  • There is a bug in the tarball installer that marks the abootimg package as automatically installed without dependencies, this causes removal of the (essential) abootimg package during upgrades. To work around that bug run:
    sudo apt-get install abootimg
    before starting the upgrade. This will mark the package as manually installed and prevent it from being removed.

Installing the preinstalled rootfs

  • Copy quantal-preinstalled-desktop-armhf+ac100.tar.gz to a USB stick as a regular file on the first partition. NOTE: DO NOT UNPACK OR DD THE TARBALL, JUST COPY! Make sure the md5sum is alright after copying to the media.

  • Reboot with the USB stick inserted and follow the simple instructions. Overall it does one reboot and in total can take about 20-30 minutes.

Notes on installation

  • To do an install to external media the installer also supports installing from USB key to SD card (not the other way around !). To do such an install put the tarball on the USB key and make sure an empty SD card is in the slot before starting the installation, the installer will offer you to install to a partition on mmcblk1 (SD card) instead of mmcblk0 (internal eMMC drive).
  • Although the installer offers the possibility to encrypt your home, this does not work. See the end of this document for instructions on enabling encryption.
  • Suspend/resume is unstable.
  • The package cache will be stuck for a while after installation since update-manager by default only updates the package info once a week. Updates will start appearing after a day or so.
  • Some people have reported issues seeing a "hash sum mismatch" error for package installations.
    • To fix this, run sudo rm /var/lib/apt/lists/* /var/lib/apt/lists/partial/*. This will clear out the package list cache, then you can run sudo apt-get update and update the package list normally.

    • You can alternatively wait a couple of days for the cache to expire.

A Note About Fragmentation

The effort the bring hardware support has always been fragmented. We are thankful for phh who did the initial bringup of a working linux kernel on the ac100 and made Linux4Tegra work on the older root filesystems ogra who built all Ubuntu root filesystems and the official oneiric and precise images, marvin24 who has put effort in porting the Chrome OS kernel to the AC100, and the many others who were involved.

The downside of this fragmentation is that documentation is fragmented too. The goal of this wiki is to provide good quality information for the latest and most promising effort.

Wiki maintainers: don't reference the old "wetpaint" wiki. It is virtually unmaintained and will cause confusion. Information about the inner workings of the device and drivers must go here: http://ac100.grandou.net/

More information

Some bits of useful information about your Ubuntu system on a Toshiba AC100 can be found in the ac100 questions&answers at Launchpad.

Hardware

The AC100 netbook

The AC100 is an nVidia Tegra2 based device which has Android 2.1 as factory default. It has dual ARM Cortex-A9 cores at 1 GHz and nVidia GPU technology on its System On Chip (SoC). Some models come with 3G modems and the eMMC flash storage comes in various sizes.

Strengths

  • Very slim and light
  • Long battery life
  • HDMI out - when using the Nvidia driver (with no aoudio yet)

Weaknesses

  • Slow eMMC storage (not an SSD)
  • Only 512MB of RAM
  • No VGA out (must use a displaylink device for most projectors)

Features known to work on Ubuntu: webcam, touchpad, 3G modem, WiFi, OpenGL ES (proprietary), indicator LEDs, card reader, audio, suspend/resume, HDMI out (with the proprietary nvidia drivers, no audio yet)

Incomplete support: video acceleration.

For details and a list of models, see http://ac100.grandou.net/models

Boot loader

The current first stage bootloader is Android Fastboot which uses the kernel and initramfs images found on partition 6 of the device. The partition can be written via the mini-USB port from another computer using the closed source nvflash utility from nvidia or opensource putusb, or updated from an already running system. The boot partition can be handled using the abootimg tool.

The ac100 PPA has a kernel that reads the (nvidia-proprietary format) main partition table, so kernel upgrades are possible. The flash-kernel package in the PPA takes care of this (note that all packages from the PPA are integrated since the oneiric images linked above, in oneiric the PPA will only be used for post-release updates of single packages).

U-Boot

The default boot loader is inflexible, and there is interest in adding U-Boot as a second stage boot loader. There are Tegra based U-Boot using devices but there's no working AC100 image yet that can handle the eMMC or the screen to be actually useful for a wider audience.

Kernel development

As of early September 2011 a 2.6.38-chromeos kernel fork is used in Ubuntu and included in the Oneiric archives. It supports suspend/resume and sound from the headphones is working, speakers do not yet. Sound are almost done in 3.1.x/3.8/mainline.

Work is done to upstream AC100 support patches in 3.x kernels so we can use mainline eventually.

The kernel tree the Ubuntu package is based on is at https://gitorious.org/~marvin24/ac100/marvin24s-kernel

Tips and tricks for Ubuntu 12.10

Graphics

To install the nvidia-tegra binary GLES driver in 12.10 open the Menu and go to "Preferences"->"Software Sources"

Software Sources

Select the most right Tab and click the Radio button for the Tegra2 binary driver.

Driver Selection

Note: If the radio box goes back to selecting the nouveau driver after attempting to apply changes, ensure that your package cache does not have a "hash sum mismatch" when running apt-get update. To fix this, see instructions in "notes on installation". Additionally, ensure that you have enabled the multiverse repositories (under the "Ubuntu Software" tab).

After the changes were applied, reboot and enjoy the GLES support and working HDMI out.

Tip: install the glmark2-es2 and mesa-utils-extra packages, they ship the glmark2 test as well as the es2_info and es2gears binaries for GLES.

Known issues and tips for Ubuntu 12.04 beta1

This section will in time replace the one above.

Graphics

The nvidia-tegra package is not yet available for armhf. For now, just stay with the default open source driver.

Contact

Only put here links that are still relevant for present and future development and do not lead to unnecessary work and confusion. In particular, try to avoid the wetpaint wiki.

CategoryHardware

ARM/TEGRA/AC100 (last edited 2021-07-13 10:07:57 by ogra)