Chromium OS running on the Toshiba AC100

2,611 views
Skip to first unread message

Rick

unread,
Feb 14, 2012, 11:02:53 AM2/14/12
to Chromium OS discuss
Hello, I am trying to get Chromium OS to run on the Toshiba AC100. I
got to the point where I can see the Logo, but after a few seconds the
screen turns black. This is what I did so far:
- build chromium os using the developer guide, and setting the
BOARD=tegra setting.
- installed chromium os to USB stick
- installed the ubuntu kernel 3.0.8-4.3 to the internal MMC of the
AC100
- copied the rootfs and user data partitions from the USB stick to an
SD card
- copied the /lib/modules folder from ubuntu kernel 3.0.8-4.3 to the
rootfs on the SD card
- booted the AC100 with the SD card inside

First time it booted, but went into repairing mode. This turned out to
be a problem with a hard coded partition number for the user data
partition and was easily solved by changing the script performing the
mount. But now the screen turns black after showing the logo for a few
seconds. I can still access the dev console (ctrl-alt-f2) though.
Could this be related to not using U-Boot? Or with the L4T drivers?

Any ideas?

Olof Johansson

unread,
Feb 14, 2012, 11:38:16 AM2/14/12
to rga...@gmail.com, Chromium OS discuss
Hi,

Switch to VT2 and take a look at logs. X logs in particular, sounds
like it might not be starting up properly.

You didn't mention installing the L4T binaries -- the build system
won't do it for you with the default public overlay since the binaries
we use aren't open for redistribution. There has been some talk about
switching to using the L4T tarball from the nvidia website instead but
it hasn't been implemented yet.


-Olof

Rick

unread,
Feb 15, 2012, 3:48:29 PM2/15/12
to Chromium OS discuss
Thank you for your response.

It was indeed missing the tegra driver. So I downloaded the package
(harmony_Tegra-Linux-R12.beta.1.0) and tried to insert the the files
into the right places:
- /lib/firmware/*
- /usr/lib/* (overwriting libEGL and libGLES)
- /usr/lib/xorg/modules/driver/ (the abi8 one, renamed to
tegra_drv.so)

But instead of a black screen, the ac100 now shuts down (nicely with a
kernel message). But there is no info why?
When I look at the xorg log now, it looks like everything gets loaded.
Looking at var/log/messages I see a couple of these "laptop-mode:
failed - udev not active?" Could this have something to do with kernel
build config?

I've tried different kernels as well (like marvin24s chromeos-
ac100-3.0) but the result is still the same :(. I've also moved from
using a copied SD card, to using the generated USB stick... but no
change.

Olof Johansson

unread,
Feb 16, 2012, 7:56:54 PM2/16/12
to rga...@gmail.com, Chromium OS discuss
Hi,

On Wed, Feb 15, 2012 at 12:48 PM, Rick <rga...@gmail.com> wrote:
> Thank you for your response.
>
> It was indeed missing the tegra driver. So I downloaded the package
> (harmony_Tegra-Linux-R12.beta.1.0) and tried to insert the the files
> into the right places:
>  - /lib/firmware/*
>  - /usr/lib/* (overwriting libEGL and libGLES)
>  - /usr/lib/xorg/modules/driver/ (the abi8 one, renamed to
> tegra_drv.so)
>
> But instead of a black screen, the ac100 now shuts down (nicely with a
> kernel message). But there is no info why?

Shuts down or reboots? What is the message?

> When I look at the xorg log now, it looks like everything gets loaded.
> Looking at var/log/messages I see a couple of these "laptop-mode:
> failed - udev not active?" Could this have something to do with kernel
> build config?

Possible, not sure.

> I've tried different kernels as well (like marvin24s chromeos-
> ac100-3.0) but the result is still the same :(. I've also moved from
> using a copied SD card, to using the generated USB stick... but no
> change.

What if you disable the ui start (move /etc/init/ui.conf out if
/etc/init and reboot) and start X manually? Any errors, same
behaviour, etc?


-Olof

Rick Gaiser

unread,
Feb 18, 2012, 10:02:15 AM2/18/12
to Chromium OS discuss
It shuts down, with the exact same message as doing a "shutdown -h 0":"Power down."

When manually starting x using "startx" I see a lot of these:
"(EE) src/prop_registry.cc:52:Property already created"
and then it ends with:
"/etc/X11/xinit/xinitrc: 66: xclock: not found"
"exec: 66: /etc/X11/xinit/xinitrc: 66: xterm: not found"
"twm: not found"
"xinit: connection to X server lost"

Update:
Yesterday I built the image again (after a repo sync), and this seems to have solved the first error:
"(EE) src/prop_registry.cc:52:Property already created"

It is still missing the xclock, xterm and twm though. The following information might also be usefull:
 - I chose the minilayout
 - I run startx as root


2012/2/17 Olof Johansson <ol...@chromium.org>

Olof Johansson

unread,
Feb 18, 2012, 4:14:21 PM2/18/12
to rga...@gmail.com, Chromium OS discuss
On Sat, Feb 18, 2012 at 7:02 AM, Rick Gaiser <rga...@gmail.com> wrote:
> It shuts down, with the exact same message as doing a "shutdown -h 0":"Power
> down."
>
> When manually starting x using "startx" I see a lot of these:

Yes, just start "X" manually, not "startx".

> "(EE) src/prop_registry.cc:52:Property already created"
> and then it ends with:
> "/etc/X11/xinit/xinitrc: 66: xclock: not found"
> "exec: 66: /etc/X11/xinit/xinitrc: 66: xterm: not found"
> "twm: not found"
> "xinit: connection to X server lost"
>
> Update:
> Yesterday I built the image again (after a repo sync), and this seems to
> have solved the first error:
>
> "(EE) src/prop_registry.cc:52:Property already created"
>
> It is still missing the xclock, xterm and twm though. The following
> information might also be usefull:
>  - I chose the minilayout
>  - I run startx as root


starts assumes there's an environment there for "regular" X, and there
isn't. But you can still try starting up the X server (just by
launching "X &") and then start a terminal app by "DISPLAY=:0 urxvt"
to see if it works. You can even start chrome manually that way.

How much free memory do you have on the system before starting up ui/X?


-Olof

Rick Gaiser

unread,
Feb 20, 2012, 2:26:15 PM2/20/12
to Olof Johansson, Chromium OS discuss
Starting X manualy and then urxvt works. So X is working :-)

Before starting X I have 360MB of free RAM (not much...) and no swap. So I tried to add some swap space to /etc/fstab, but looks like it is not being mounted during startup. Only after I do a "swapon -a" it gets mounted.

Is 360MB enough to boot?
How do I enable swap in chromium?


2012/2/18 Olof Johansson <ol...@chromium.org>

Richard Barnette

unread,
Feb 21, 2012, 1:40:07 PM2/21/12
to rga...@gmail.com, Olof Johansson, Chromium OS discuss
On Feb 20, 2012, at 11:26 AM, Rick Gaiser wrote:

> Starting X manualy and then urxvt works. So X is working :-)
>

Hmmm… The boot process starts X automatically. I've
lost track of what problem you were having, so I'm a
bit confused as to why you're starting X manually.
Was this for debug, to see why you can't boot?


> Before starting X I have 360MB of free RAM (not much...) and no swap. So I tried to add some swap space to /etc/fstab, but looks like it is not being mounted during startup. Only after I do a "swapon -a" it gets mounted.
>
> Is 360MB enough to boot?
> How do I enable swap in chromium?
>

Ugh. 360MB is mighty small. I don't think anyone's tested
specifically as to how small qualifies as "too small"; my
recollection is that testing found that 2GB is small but with
borderline usability. I expect (though I don't know) that
360MB is too small to be usable.

Here's one key observation: during boot, the system moves
about 120MB from disk to memory. I expect much of that data
stays in memory and is used, although some of it will be used
once for initialization and is then dead. That means that up to
one third your system's memory is assigned to code and static
data before accounting for stack space and dynamic allocations.
I would expect that actual memory use would be high enough
to cause considerable memory pressure.

Regarding adding swap: The boot process doesn't look in
/etc/fstab, so changes there won't have any impact. If you want
to tinker with automatically adding swap or other file system
changes, the place to do it is /sbin/chromeos_startup. In the
past, I experimented with using 'mount -a' to simplify the script;
that change isn't an enormous amount of work, unless you plan
to keep your changes in sync with upstream. :-/ The source
package is chromeos-init, and the source files are under
src/platform/init.

I note that if your system can't boot without swapping, you're
not likely to have a satisfactory performance experience.
Systems that swap more than rarely are slow; if your system
swaps before the login screen appears, it will swap all the
time: every keystroke or mouse click will be painful.

> --
> Chromium OS discuss mailing list: chromium-...@chromium.org
> View archives, change email options, or unsubscribe:
> http://groups.google.com/a/chromium.org/group/chromium-os-discuss?hl=en

-- jrb

Sonny Rao

unread,
Feb 21, 2012, 1:52:32 PM2/21/12
to jrbar...@chromium.org, rga...@gmail.com, Olof Johansson, Chromium OS discuss

Also, to make things more difficult, I don't believe we have swap
enabled in the default kernel config.

Micah Catlin

unread,
Feb 21, 2012, 2:11:36 PM2/21/12
to sonn...@chromium.org, jrbar...@chromium.org, rga...@gmail.com, Olof Johansson, Chromium OS discuss
Sonny, I think you are right about the common kernel config.  But the splitconfig for ARM enables generic swap.

For one of the experimental boards we've added a tweak to add a "swap.conf" to upstart and enable swap-to-zram (compressed RAM).  It would take just a few modifications to this script to enable backing that zram with a block device instead of DRAM.

$ cat swap.conf
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

description     "Setup compressed memory swap"
author          "chromiu...@chromium.org"

start on starting system-services

script
  if [ ! -f /mnt/stateful_partition/.noswap ]; then
    modprobe zram num_devices=2 || exit 1
    #
    # Allocate 2x 320MB of zram (compressed ram disk) space for swap.
    # Two zram disks are swapped at equal priority to leverage both A9 cores.
    # These values are currently hard coded and assume 1GB DDR Tegra2
    # hardware and may be adjusted in the future to tune for performance.
    #
    echo 320000000 >  /sys/block/zram0/disksize
    echo 320000000 >  /sys/block/zram1/disksize
    mkswap /dev/zram0
    mkswap /dev/zram1
    swapon -p 5 /dev/zram0
    swapon -p 5 /dev/zram1
  fi
end script

Rick Gaiser

unread,
Feb 21, 2012, 3:27:24 PM2/21/12
to Micah Catlin, sonn...@chromium.org, jrbar...@chromium.org, Olof Johansson, Chromium OS discuss
I am trying to get Chromium running on the Toshiba AC100. Here is some more information:
 - It has a TEGRA2 CPU (@1GHz)
 - It has 512MiB RAM (448MiB for CPU, 64MiB for GPU)
 - There is no support for U-Boot yet
 - I am using a very fast (a lot of iops) SD card for swap (2GiB partition)
 - I am using a custom kernel, becouse hardware support is very limited in chromium/mainline
 - It boots Ubuntu 12.04 and Archlinux without any problems

Currently I can get X running manually. But I cannot get ui running. Below is the a part of the /var/log/messages file. You can see I added a 2G swap (at 11:41:01), and then try to start ui. It ends in an enless loop, trying to start ui:

2012-02-20T11:40:40.633073-08:00 localhost flimflamd[589]: vcsid 0.0.1-r462-8ff0132b05147a77ac4d6ce2c739b451e8a71401
2012-02-20T11:40:40.639516-08:00 localhost flimflamd[589]: Add plugin Loopback device plugin
2012-02-20T11:40:40.639995-08:00 localhost flimflamd[589]: Add plugin Ethernet interface plugin
2012-02-20T11:40:40.640319-08:00 localhost flimflamd[589]: Add plugin New WiFi interface
2012-02-20T11:40:40.640608-08:00 localhost flimflamd[589]: Add plugin NSS certificate glue
2012-02-20T11:40:40.640889-08:00 localhost flimflamd[589]: Add plugin Chrome OS DHCP client
2012-02-20T11:40:40.641167-08:00 localhost flimflamd[589]: Add plugin OpenVPN plugin
2012-02-20T11:40:40.641443-08:00 localhost flimflamd[589]: Add plugin l2tpipsec plugin
2012-02-20T11:40:40.641736-08:00 localhost flimflamd[589]: Add plugin Multiple-interface resolv.conf manager
2012-02-20T11:40:40.666852-08:00 localhost flimflamd[589]: Add plugin Rot47 Plugin
2012-02-20T11:40:40.673919-08:00 localhost flimflamd[589]: Add plugin Chrome OS bootstat plugin
2012-02-20T11:40:40.724308-08:00 localhost flimflamd[589]: Add plugin Point-to-point protocol plugin
2012-02-20T11:40:40.739265-08:00 localhost flimflamd[589]: Add plugin Hostroute plugin
2012-02-20T11:40:40.764053-08:00 localhost flimflamd[589]: Add plugin DES-CBC Plugin
2012-02-20T11:40:41.017938-08:00 localhost flimflamd[589]: Add plugin Chrome OS metrics plugin
2012-02-20T11:40:41.384432-08:00 localhost flimflamd[589]: Add plugin Modem Manager plugin
2012-02-20T11:40:41.385416-08:00 localhost flimflamd[589]: System hostname is localhost
2012-02-20T11:40:41.502052-08:00 localhost flimflamd[589]: des-cbc: Reading keymatter file: /var/lib/whitelist/owner.key
2012-02-20T11:40:41.506991-08:00 localhost flimflamd[589]: des-cbc: Error reading /var/lib/whitelist/owner.key: No such file or directory
2012-02-20T11:40:41.511349-08:00 localhost dbus[459]: [system] Rejected send message, 2 matched rules; type="method_return", sender=":1.0" (uid=0 pid=461 comm="/usr/sbin/wpa_supplicant -u -s -O/var/run/wpa_supp") interface="(unset)" member="(unset)" error name="(unset)" requested_reply="0" destination=":1.2" (uid=0 pid=589 comm="flimflamd -k /var/lib/whitelist/owner.key ")
2012-02-20T11:40:41.526569-08:00 localhost flimflamd[589]: Add profile (null):default
2012-02-20T11:40:41.535282-08:00 localhost flimflamd[589]: wlan0 {create} index 2 type 1 <ETHER>
2012-02-20T11:40:41.635538-08:00 localhost wpa_supplicant[461]: Could not set interface wlan0 flags: No such file or directory
2012-02-20T11:40:41.635601-08:00 localhost wpa_supplicant[461]: nl80211: Could not set interface 'wlan0' UP
2012-02-20T11:40:41.635633-08:00 localhost wpa_supplicant[461]: wlan0: Failed to initialize driver interface
2012-02-20T11:40:41.643568-08:00 localhost kernel: [   18.505115] phy0 -> rt2x00lib_request_firmware: Error - Failed to request Firmware.
2012-02-20T11:40:42.533725-08:00 localhost cryptohomed: TPM error 0x3011 (Communication failure): Error calling Tspi_Context_Connect
2012-02-20T11:40:43.576756-08:00 localhost cryptohomed: TPM error 0x3011 (Communication failure): Error calling Tspi_Context_Connect
2012-02-20T11:40:43.576818-08:00 localhost cryptohomed: Communications failure with the TPM.
2012-02-20T11:40:43.576851-08:00 localhost cryptohomed: TPM error 0x3011 (Communication failure): Error connecting to the TPM
2012-02-20T11:40:43.584152-08:00 localhost cryptohomed: set_tpm() missing or disabled TPM provided.
2012-02-20T11:40:43.584215-08:00 localhost cryptohomed: Init() failed to read attributes file.
2012-02-20T11:40:43.584246-08:00 localhost cryptohomed: Init() assuming first-time install for TPM-less system.
2012-02-20T11:40:44.596746-08:00 localhost cryptohomed: TPM error 0x3011 (Communication failure): Error calling Tspi_Context_Connect
2012-02-20T11:40:44.597108-08:00 localhost cryptohomed: Could not open the TPM
2012-02-20T11:40:44.597240-08:00 localhost cryptohomed: Could not get random data from the TPM
2012-02-20T11:40:44.597358-08:00 localhost cryptohomed: FAILED TO SEED /dev/urandom AT START
2012-02-20T11:41:01.973559-08:00 localhost kernel: [   38.836206] Adding 1902524k swap on /dev/sda2.  Priority:-1 extents:1 across:1902524k 
2012-02-20T11:41:10.612924-08:00 localhost laptop-mode: Warning: Configuration file /etc/laptop-mode/conf.d/board-specific/*.conf is not readable, skipping.
2012-02-20T11:41:10.620237-08:00 localhost laptop-mode: Warning: Configuration file /etc/laptop-mode/conf.d/board-specific/*.conf is not readable, skipping.
2012-02-20T11:41:10.813732-08:00 localhost kernel: [   47.682847] Linux video capture interface: v2.00
2012-02-20T11:41:10.852378-08:00 localhost laptop-mode: Couldn't acquire lock. Retrying.... PID is 698\n
2012-02-20T11:41:10.953653-08:00 localhost kernel: [   47.816251] Bluetooth: Core ver 2.16
2012-02-20T11:41:10.953715-08:00 localhost kernel: [   47.816347] NET: Registered protocol family 31
2012-02-20T11:41:10.953729-08:00 localhost kernel: [   47.816355] Bluetooth: HCI device and connection manager initialized
2012-02-20T11:41:10.953743-08:00 localhost kernel: [   47.816369] Bluetooth: HCI socket layer initialized
2012-02-20T11:41:10.953754-08:00 localhost kernel: [   47.816378] Bluetooth: L2CAP socket layer initialized
2012-02-20T11:41:10.973557-08:00 localhost kernel: [   47.835968] Bluetooth: SCO socket layer initialized
2012-02-20T11:41:10.986124-08:00 localhost laptop-mode: Laptop mode 
2012-02-20T11:41:10.997824-08:00 localhost laptop-mode: disabled, not active
2012-02-20T11:41:11.073676-08:00 localhost kernel: [   47.938895] uvcvideo: Found UVC 1.00 device USB Camera (0bda:58f2)
2012-02-20T11:41:11.093626-08:00 localhost kernel: [   47.959984] Bluetooth: Generic Bluetooth USB driver ver 0.6
2012-02-20T11:41:11.093683-08:00 localhost kernel: [   47.960777] input: USB Camera as /devices/platform/tegra-ehci.2/usb2/2-1/2-1.2/2-1.2:1.0/input/input6
2012-02-20T11:41:11.093704-08:00 localhost kernel: [   47.961120] usbcore: registered new interface driver uvcvideo
2012-02-20T11:41:11.093717-08:00 localhost kernel: [   47.961129] USB Video Class driver (v1.1.0)
2012-02-20T11:41:11.103597-08:00 localhost kernel: [   47.968673] usbcore: registered new interface driver btusb
2012-02-20T11:41:11.843646-08:00 localhost kernel: [   48.705525] asoc: alc5632-hifi <-> tegra-i2s.0 mapping ok
2012-02-20T11:41:11.843709-08:00 localhost kernel: [   48.706258] input: tegra-alc5632 Headset Jack as /devices/platform/tegra-alc5632.0/sound/card0/input7
2012-02-20T11:41:11.879690-08:00 localhost laptop-mode: Couldn't acquire lock. Retrying.... PID is 698\n
2012-02-20T11:41:11.895843-08:00 localhost powerd[924]: vcsid 0.0.1-r308-0318da599a0f719caf5ec3dc739d25a5a1d4e8a5
2012-02-20T11:41:12.907127-08:00 localhost laptop-mode: Couldn't acquire lock. Retrying.... PID is 698\n
2012-02-20T11:41:13.925166-08:00 localhost laptop-mode: Couldn't acquire lock. Retrying.... PID is 698\n
2012-02-20T11:41:14.946739-08:00 localhost laptop-mode: Couldn't acquire lock. Retrying.... PID is 698\n
2012-02-20T11:41:15.359557-08:00 localhost laptop-mode: Laptop mode 
2012-02-20T11:41:15.364292-08:00 localhost laptop-mode: disabled, 
2012-02-20T11:41:15.370114-08:00 localhost laptop-mode: not active [unchanged]
2012-02-20T11:41:18.923639-08:00 localhost kernel: [   55.787669] init: ui main process ended, respawning
2012-02-20T11:41:18.923694-08:00 localhost kernel: [   55.793173] init: powerd main process (879) killed by TERM signal
2012-02-20T11:41:18.941755-08:00 localhost flimflamd[589]: __connman_profile_pop: ~chronos/flimflam is not the active profile
2012-02-20T11:41:18.953646-08:00 localhost kernel: [   55.815263] init: logout main process (1881) terminated with status 1
2012-02-20T11:41:19.003877-08:00 localhost kernel: [   55.866314] init: debugd main process (884) killed by TERM signal
2012-02-20T11:41:22.153577-08:00 localhost kernel: [   59.018710] init: tty2 main process ended, respawning
2012-02-20T11:41:23.174827-08:00 localhost powerd[2073]: vcsid 0.0.1-r308-0318da599a0f719caf5ec3dc739d25a5a1d4e8a5
2012-02-20T11:42:58.004093-08:00 localhost kernel: [  154.866335] init: ui main process ended, respawning
2012-02-20T11:42:58.013575-08:00 localhost kernel: [  154.883726] init: powerd main process (2062) killed by TERM signal
2012-02-20T11:42:58.026980-08:00 localhost flimflamd[589]: __connman_profile_pop: ~chronos/flimflam is not the active profile
2012-02-20T11:42:58.033560-08:00 localhost kernel: [  154.899612] init: logout main process (3421) terminated with status 1
2012-02-20T11:42:58.113865-08:00 localhost kernel: [  154.976281] init: debugd main process (2063) killed by TERM signal




2012/2/21 Micah Catlin <mic...@chromium.org>

Micah Catlin

unread,
Feb 21, 2012, 3:52:20 PM2/21/12
to Rick Gaiser, sonn...@chromium.org, jrbar...@chromium.org, Olof Johansson, Chromium OS discuss
Because I see this line:
2012-02-20T11:41:18.923639-08:00 localhost kernel: [   55.787669] init: ui main process ended, respawning

I presume that you will also find some good clues in /var/log/ui or /var/log/chrome to see why the UI process exited right after starting.

If you see messages about failing to load the GL or EGL library, then you might also want to check in /usr/lib and make sure that you have libEGL.so -> libEGL.so.1, and libGLESv2.so -> libGLESv2.so.2.  I recall a change to the browser about 2 weeks ago which makes it request the specific version of these libraries, where before it had loaded them with a generic name. 

Regards,
Micah

Rick Gaiser

unread,
Feb 21, 2012, 7:38:08 PM2/21/12
to Micah Catlin, sonn...@chromium.org, jrbar...@chromium.org, Olof Johansson, Chromium OS discuss
It is working!

I've added swap to /sbin/chromeos_startup
I've added libEGL.so -> libEGL.so.1, and libGLESv2.so -> libGLESv2.so.2

And there where messages in /var/log/ui about not being able to open /dev/nvhost-ctrl. So I changed the permissions from 600 to 666:
chmod 666 /dev/nv*
chmod 666 /dev/knv*
Adding these chmod commands to /sbin/chromeos_startup does not work however... I guess they must be changed back to 600 somewhere else? Or I have to chmod them later in the startup process?

There are some other things still not working:
 - mouse is not moving, but clicking works
 - wireless does not seem to work... but I have seen this in ubuntu as well, so this could be a kernel/driver problem

Anyway, the basics are working now, thank you all! My first impression of chromium on the AC100 is: WOW, this is really working smooth :). Pages are loading fast and it looks like the limited memory is not a problem at all. I don't like the big bar at the bottom though, becouse it is taking up a lot of space on my tiny screen. Can I hide this bar or change back to the old layout?


2012/2/21 Micah Catlin <mic...@chromium.org>

Fly-away

unread,
Jun 28, 2012, 5:48:15 PM6/28/12
to chromium-...@chromium.org
Rick, do wifi, 3g, flash and hardware video decoding works in chromiumos on ac100?

Rui Dias

unread,
Jun 5, 2014, 3:50:01 PM6/5/14
to chromium-...@chromium.org
Hi, there! I also have a toshiba ac100 and I've already tried ubuntu in it, but I'd like to try the chrome OS.
But I'm still a little bit fresh in chrome os.
Can you help me to get started? Maybe some links, tutorials (chrome os in toshiba ac100 for dummies)

Thanks
Reply all
Reply to author
Forward
This conversation is locked
You cannot reply and perform actions on locked conversations.
0 new messages