Skip to content

Instantly share code, notes, and snippets.

@fredericksilva
Forked from dshaw/nodebook.md
Created February 5, 2017 02:11
Show Gist options
  • Save fredericksilva/36aae93beb9c216f63ab88fe5ea20768 to your computer and use it in GitHub Desktop.
Save fredericksilva/36aae93beb9c216f63ab88fe5ea20768 to your computer and use it in GitHub Desktop.
Running Node on a Samsung 303C Chromebook

Running Node on a Samsung 303C Chromebook

Motivation

After @mikeal and @lyle purchased Chromebooks for kids activities at NodeConf 2014, I was very impressed with the device and decided to explore this as a laptop and hacking device for my kids (7 & 8). I'd love to retain the simplicity of the web-focused ChromeOS experience while letting my kids hack on NodeBots and learn how to program.

It seems like the platforms that ChromeOS runs on are quite diverse. The Samsung 303C hit the right balance of being an aesthetically pleasing looking device, having respectable build quality and the amazing $250 price point. The 303C has an ARM processor. Not all Chromebooks do. I'm writing the below step-by-step very specifically for this system.

Resources

I found the following useful and, in aggregate, they all helped get me to where I ended up. 🎉

$ node -v
v0.10.26

Step-by-step to Node.js

  1. Create a recovery disk. (I did this, though I may never go back.)
  2. Enter Recovery mode
    • ESC-Refresh-Power
  3. Enter Dev-mode (developer mode)
    • Ctrl-D
  4. Open a terminal ("crosh")
    • Ctrl-Alt-t
  5. Invoke the shell
    • $ shell
  6. Switch to root
    • $ sudo su
  7. Remove rootfs verification and reboot
    • $ ./usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 4
    • $ reboot
  8. Make rootfs writeable. (Note that this needs to be done on every reboot. I chose to setup that rw script.)
    • sudo mount -o remount,rw /
    • sudo mount -o remount,exec /mnt/stateful_partition
    • sudo mount -i -o remount,exec /home/chronos/user
  9. Download Node cross-compiled for Arm
  10. Open archive
    • $ cd /home/chronos/user/Downloads/
    • $ tar -xvf node-v0.10.26-linux-arm-pi.tar.gz
  11. Install node
    • $ cd ./node-v0.10.26/bin/
    • $ cp node /usr/bin
  12. Install npm
    • $ curl -L https://npmjs.org/install.sh | sh
    • Trying to install the included npm failed. The above "old fashioned way" worked perfectly.

Contribute

Did this work for you? Please leave a note below. If you ended up doing anything different, please fork and add those steps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment