Skip to content

Instantly share code, notes, and snippets.

@dshaw
Last active November 17, 2022 14:50
Show Gist options
  • Select an option

  • Save dshaw/1ab7e70af96d56ea080c to your computer and use it in GitHub Desktop.

Select an option

Save dshaw/1ab7e70af96d56ea080c to your computer and use it in GitHub Desktop.

Revisions

  1. Dan Shaw revised this gist Jul 29, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion nodebook.md
    Original file line number Diff line number Diff line change
    @@ -9,7 +9,7 @@ It seems like the platforms that ChromeOS runs on are quite diverse. The Samsung

    ## Resources

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

    ```bash
    $ node -v
  2. Dan Shaw revised this gist Jul 29, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion nodebook.md
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,7 @@ Running Node on a Samsung 303C Chromebook

    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.

    So far, it seems like the platforms that ChromeOS runs on are quite diverse. The Samsung 303C hit the right balance of being an esthetically pleasing looking device, having respectable build quality and the amazing $250 price point.
    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

  3. Dan Shaw created this gist Jul 29, 2014.
    58 changes: 58 additions & 0 deletions nodebook.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,58 @@
    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.

    So far, it seems like the platforms that ChromeOS runs on are quite diverse. The Samsung 303C hit the right balance of being an esthetically pleasing looking device, having respectable build quality and the amazing $250 price point.

    ## Resources

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

    ```bash
    $ node -v
    v0.10.26
    ```

    * [Samsung Series 3 Chromebook 303C Developer Mode (root)]()
    * [Node and NPM on Chromebook (Chrome OS)](https://coderwall.com/p/lonlyq) - Interesting, but did not work.
    * [Poking around your Chrome OS Device](http://www.chromium.org/chromium-os/poking-around-your-chrome-os-device)
    * [Remove RootFS Verification & make Read/Write](https://sites.google.com/site/cr48ite/getting-technical/remove-rootfs-verification-make-read-write)

    ## 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`
    2. Enter Dev-mode (developer mode)
    * `Ctrl-D`
    3. Open a terminal ("crosh")
    * `Ctrl-Alt-t`
    4. Invoke the shell
    * `$ shell`
    5. Switch to root
    * `$ sudo su`
    6. Remove rootfs verification and reboot
    * `$ ./usr/share/vboot/bin/make_dev_ssd.sh --remove_rootfs_verification --partitions 4`
    * `$ reboot`
    7. Make rootfs writeable. ([Note that this needs to be done on every reboot. I chose to setup that `rw` script.](https://sites.google.com/site/cr48ite/getting-technical/remove-rootfs-verification-make-read-write))
    * `sudo mount -o remount,rw /`
    * `sudo mount -o remount,exec /mnt/stateful_partition`
    * `sudo mount -i -o remount,exec /home/chronos/user`
    8. Download Node cross-compiled for Arm
    * http://nodejs.org/dist/v0.10.26/node-v0.10.26-linux-arm-pi.tar.gz
    9. Open archive
    * `$ cd /home/chronos/user/Downloads/`
    * `$ tar -xvf node-v0.10.26-linux-arm-pi.tar.gz`
    10. Install node
    * `$ cd ./node-v0.10.26/bin/`
    * `$ cp node /usr/bin`
    11. 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.