Tag Archives: ChromeOS

How to get the Broadcom wireless drivers working in Chromium OS

Update 16/12/13. Please Note: You need to use the special edition builds noted http://arnoldthebat.co.uk/wordpress/2013/12/16/broadcom-special-edition-build/ to use Broadcom drivers

==============================================================================

A shameless cobbling of the build files from http://linux.dell.com/files/cto/ leads to a fix for the Broadcom wireless issues!

As ever, boot your device and get to su command line  ([ Ctrl ] [ Alt ] [ F2 ]), log in as chronos and then:

sudo su
mount -o remount, rw /
sudo echo "blacklist b43" >> /etc/modprobe.d/blacklist.conf
sudo echo "blacklist b43legacy" >> /etc/modprobe.d/blacklist.conf
sudo echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
sudo echo "blacklist bcma" >> /etc/modprobe.d/blacklist.conf
sudo echo "wl" >> /etc/modules
sudo touch /etc/modprobe.d/wl.conf
sudo echo "alias wlan0 wl" >> /etc/modprobe.d/wl.conf
cd /lib/modules/3.4.0/kernel/drivers/net/wireless/
wget http://chromium.arnoldthebat.co.uk/files/fw/lib/modules/3.4.0/kernel/drivers/net/wireless/wl.ko
sudo insmod /lib/modules/3.4.0/kernel/net/wireless/cfg80211.ko
sudo insmod /lib/modules/3.4.0/kernel/net/wireless/lib80211.ko
sudo insmod /lib/modules/3.4.0/kernel/net/wireless/lib80211_crypt_ccmp.ko
sudo insmod /lib/modules/3.4.0/kernel/net/wireless/lib80211_crypt_tkip.ko
sudo insmod /lib/modules/3.4.0/kernel/net/wireless/lib80211_crypt_wep.ko
sudo insmod /lib/modules/3.4.0/kernel/drivers/net/wireless/wl.ko
sudo depmod -a

Wireless networks should start to miraculously appear and you can connect as required.

One minor gripe is that the driver doesn’t seem to like hidden SSID and bombs out when attaching to them. Other that that it seems to work fine!

Huge thanks to Doug Anson @ Dell for providing the driver.

As per the readme located http://www.broadcom.com/docs/linux_sta/README.txt a good few variants should be supported. As ever, its tested on a Dell Inspiron 910 only (Mini 9)!

How to get the touch pad working in Chromium OS

If you are one of the few with a none working touch pad, hopefully the below will sort it!

As ever, boot your device and get to su command line  ([ Ctrl ] [ Alt ] [ F2 ]), log in as chronos and then

sudo su
mount -o remount, rw /
cp /etc/X11/xorg.conf.d/50-touchpad-cmt.conf /etc/X11/xorg.conf.d/50-touchpad-cmt.conf.bak
rm /etc/X11/xorg.conf.d/50-touchpad-cmt.conf
cd /etc/X11/xorg.conf.d/
wget http://chromium.arnoldthebat.co.uk/files/fw/etc/X11/xorg.conf.d/50-touchpad-cmt.conf

Then reboot.

The contents of the conf file have been ripped from a Dell Latitude setup so may well not sort other laptops. In this case I would suggest that the file is structured in the following manner:

Section "InputClass"
 Identifier "touchpad"
 MatchIsTouchpad "on"
 MatchDevicePath "/dev/input/event*"
 Driver "synaptics"
 Option "AccelerationProfile" "-1"
 Option "Scroll Buttons" "0"
 Option "Scroll Axes" "1"
 Option "Scroll X Out Scale" "1.25"
 Option "Scroll Y Out Scale" "1.25"
EndSection

The important section is the “Driver “synaptics”” since the devs at Chromium have left the old synaptics stack loaded into the distribution. With this in mind, expect the above to stop working as later versions come out!

Occasionally in certain screens (like login(!)), once the screen is loaded, the mouse pointer will not appear. In order to activate simply left click anywhere on the screen.

Any dev server updates will more than likely undo any of the above so please bear that in mind.

Usual caveats around none of this ever working etc.

Getting Edimax EW-7811UN (or rtl8192cufw devices) to work with Chromium OS

Surprisingly easy as it happens!

Firstly boot your device and get to su command line  ([ Ctrl ] [ Alt ] [ F2 ]), log in as chronos and then

sudo su

Then pop in the wireless dongle and review the contents of dmesg.

You should see something along the lines of the following:

rtl8192cu: Loading firmware rtlwifi/rtl8192cufw.bin
rtlwifi: Firmware rtlwifi/rtl8192cufw.bin not available

In order to remedy this, firstly mount the OS read/write:

mount -o remount, rw /

Then create the directory structure and cd into it, and download the bin file

mkdir /lib/firmware/rtlwifi
cd /lib/firmware/rtlwifi/
wget http://chromium.arnoldthebat.co.uk/files/fw/lib/firmware/rtlwifi/rtl8192cufw.bin

Remove the dongle and reinsert. Lights on the dongle will now illuminate and you ‘should’ be able to connect to a wireless network! The version I tested against would not scan the network so I needed to add the wireless network manually. Reboot will remember the change so all should be good from that point on.

Any dev server updates will more than likely undo any of the above so please bear that in mind.

Usual caveats around none of this ever working etc.

Dev Server Updates now available!

Fed up with constantly installing new Chromium OS version from USB?

Look no further, I now present to you – “The Dev Update Server”

Resplendant with the finest daily compilations, its ready for you to upgrade your installed ChromiumOS to the latest and greatest x86-generic version.

Check the status of the Dev Server on twitter @chromium_bot since the server needs to go offline to build the latest version at around 05:00 GMT daily. Once compiled and presented, the status will say its available.

In order to update go to command line on your deployed Chromium ([ Ctrl ] [ Alt ] [ F2 ]) and log in as chronos with the password of ‘password’ (or whatever your distribution is set to). You can also use SSH.

Then sudo to su

sudo su

Once in the admin shell, update the client with the following:

For amd64  builds
update_engine_client --update --omaha_url=http://chromebld.arnoldthebat.co.uk:8081/update
For x86  builds
update_engine_client --update --omaha_url=http://chromebld.arnoldthebat.co.uk:8080/update
For amd64 special builds
update_engine_client --update --omaha_url=http://chromebld.arnoldthebat.co.uk:9080/update
For x86 special builds
update_engine_client --update --omaha_url=http://chromebld.arnoldthebat.co.uk:9090/update

This will take a while dependant on a couple of things:

  • Whether the image is compiled yet (the dev server creates a sync image on 1st use which can cause timeouts)
  • What other load the server is under.
  • Your bandwidth (some of the updates can be large).

Simply try the update command again if you get an update error or timeout similar to the below:

LAST_CHECKED_TIME=0
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_REPORTING_ERROR_EVENT
NEW_VERSION=0.0.0.0
NEW_SIZE=0
LAST_CHECKED_TIME=0
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_IDLE
NEW_VERSION=0.0.0.0
NEW_SIZE=0
[1228/134834:ERROR:update_engine_client.cc(237)] Update failed.

Once its running you should see notifications from the server saying all is fine and progressing:

LAST_CHECKED_TIME=0
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_CHECKING_FOR_UPDATE
NEW_VERSION=0.0.0.0
NEW_SIZE=0
LAST_CHECKED_TIME=1356707131
PROGRESS=0.000000
CURRENT_OP=UPDATE_STATUS_UPDATE_AVAILABLE
NEW_VERSION=0.0.0.0
NEW_SIZE=237376171
LAST_CHECKED_TIME=1356707131
PROGRESS=0.000000

Finally, the download will begin:

LAST_CHECKED_TIME=1356707131
PROGRESS=0.000012
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=237376171
LAST_CHECKED_TIME=1356707131
PROGRESS=0.000012
CURRENT_OP=UPDATE_STATUS_DOWNLOADING
NEW_VERSION=0.0.0.0
NEW_SIZE=237376171
LAST_CHECKED_TIME=1356707131
PROGRESS=0.002867

If all goes well, the updates will download and the install will progress to finalising:

CURRENT_OP=UPDATE_STATUS_FINALIZING
NEW_VERSION=0.0.0.0
NEW_SIZE=237376171
LAST_CHECKED_TIME=1356708887

This can tale a while (go for a beer whilst waiting) but ‘should’ result in:

CURRENT_OP=UPDATE_STATUS_UPDATED_NEED_REBOOT
NEW_VERSION=0.0.0.0
NEW_SIZE=237376171
[1228/154101:INFO:update_engine_client.cc(241)] Update succeeded -- reboot needed.

You should now also be able to update your stateful partition (where dev tools sit) using:

sudo stateful_update

Which in turn should output:

Downloading stateful payload from http://vps2.arnoldthebat.co.uk:8080/static/stateful.tgz
 HTTP/1.1 200 OK
 Date: Fri, 28 Dec 2012 15:42:43 GMT
 Last-Modified: Fri, 28 Dec 2012 15:07:27 GMT
 Content-Length: 42236449
 Content-Type: application/x-gtar
 Server: CherryPy/3.1.2
 Connection: Keep-Alive
Successfully downloaded update
Performing standard stateful update.

You ‘should’ be able to use the process above to update Hexxxeh and others vanilla builds as well but this is (as ever) completely untested.

Subsequent updates for the OS and stateful partition will now automagically point to the new dev server (you can change using the –omaha-url noted above) so all you need to do is:

update_engine_client --update

and

sudo stateful_update

Finally, in all cases, reboot your client!

Usual Caveats, E&OE stand. The Update Server could work fantastically and make you more attractive to other humans/species from other worlds as well as updating your base build perfectly. It could also create a black hole of NGC 4889 proportions and end the world as we know it as well as bricking your install completely. You have been warned!

Further details and notes available http://goo.gl/OBG2Y