computers:chromebooks:chromebooks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
computers:chromebooks:chromebooks [2019/10/22 12:46] – created localadmincomputers:chromebooks:chromebooks [2021/01/04 16:18] (current) localadmin
Line 1: Line 1:
-====== Chrome OS (Copied from [[https://wiki.cherryblossomfarmette.com:8443/doku.php?id=chrome|Rob Sickler]] ====== +====== Chrome OS ====== 
-[[wp>/Chrome_OS|Chrome OS]] is Google's fork of the [[wp>/Chromium_OS|Chromium]] project which is based on the Linux kernel.  Google's first release of the OS was in the summer of 2011.  Many schools like to use [[wp>/Chromebook|Chromebooks]], which run Chrome OS, because Google's ecosystem is pretty friendly and reliable.  They are also marketed toward first-time computer users due to their simplicity.  I personally have a few Chromebooks and like to tinker a bit with them.+Copied from [[https://wiki.cherryblossomfarmette.com:8443/doku.php?id=chrome|Rob Sickler]] 
 + 
 +[[wp>Chrome_OS|Chrome OS]] is Google's fork of the [[wp>Chromium_OS|Chromium]] project which is based on the Linux kernel.  Google's first release of the OS was in the summer of 2011.  Many schools like to use [[wp>Chromebook|Chromebooks]], which run Chrome OS, because Google's ecosystem is pretty friendly and reliable.  They are also marketed toward first-time computer users due to their simplicity.  I personally have a few Chromebooks and like to tinker a bit with them.
  
 ====== Working with Chromebooks ====== ====== Working with Chromebooks ======
Line 12: Line 14:
  
 <note tip> <note tip>
-In the Google Admin Console, you can also add other info.  For instance, adding the **asset ID** in the admin console will show it under the serial and build info when you hit **Alt + V**.+In the [[https://admin.google.com/|Google Admin Console]], you can also add other info.  For instance, adding the **asset ID** in the admin console will show it under the serial and build info when you hit **Alt + V**.
 </note> </note>
 +
 ===== Powerwash a Chromebook ===== ===== Powerwash a Chromebook =====
  
Line 23: Line 26:
  
   * To start, you need to give the device the //three-finger salute//:   * To start, you need to give the device the //three-finger salute//:
-    * Hold down **Escape** and **Refresh** and hit the **Power** button. +    * Hold down **Escape** and **Refresh**((The **Refresh** key is generally referred to as the **F3** key if you're ever poking around forums.)) and hit the **Power** button.
-      * The **Refresh** key is generally referred to as the **F3** key if you're ever poking around forums.+
   * If the device is on, it should reboot to a **white screen**, nagging about a **missing or damaged OS**.  If the device is off, it should boot up to said screen.   * If the device is on, it should reboot to a **white screen**, nagging about a **missing or damaged OS**.  If the device is off, it should boot up to said screen.
   * At the aforementioned screen, you hit **Ctrl** + **D**.   * At the aforementioned screen, you hit **Ctrl** + **D**.
Line 56: Line 58:
   - Ctrl + Alt + Shift + R   - Ctrl + Alt + Shift + R
   - Follow the prompts.   - Follow the prompts.
 +
 ===== Reboot a Chromebook ===== ===== Reboot a Chromebook =====
  
Line 61: Line 64:
  
   * Remember that **Refresh** key I mentioned earlier?  Well, hold it down and hit the **Power** button.   * Remember that **Refresh** key I mentioned earlier?  Well, hold it down and hit the **Power** button.
-  * If the sequence is done successfully, the device should immediately reboot.+  * If the sequence is done successfully, and the keys are in working order, the device should immediately reboot.
  
  
Line 121: Line 124:
     * Don't forget to reinstall the **write-protect screw**.     * Don't forget to reinstall the **write-protect screw**.
  
-===== Changing the Serial Number =====+===== Changing VPD Info ===== 
 + 
 +==== Changing the Serial Number ====
  
 You typically don't need to change the serial number unless you've changed the motherboard and wish to keep the serial in sync with what's listed on the bottom of the device.  I've replaced several for devices that are under warranty.  Yes, I could have just sent the device back to the manufacturer but where's the fun in that? You typically don't need to change the serial number unless you've changed the motherboard and wish to keep the serial in sync with what's listed on the bottom of the device.  I've replaced several for devices that are under warranty.  Yes, I could have just sent the device back to the manufacturer but where's the fun in that?
Line 136: Line 141:
 To get around the issue with the **overheating WNIC**, I tend to set the WNIC aside when I'm rebuilding the CB.  The WNIC is not necessary for changing the serial so I just leave it out of the equation. I go through the process of changing the serial and, before I button everything up, I install the WNIC.  Now and then, I'll still have one that fails to be //seen// by the device.  Luckily, I have several on hand so I just swap them out until I find one that works.  Typically, once you find one that works, you can swap the original back into place and it'll //magically// work again. To get around the issue with the **overheating WNIC**, I tend to set the WNIC aside when I'm rebuilding the CB.  The WNIC is not necessary for changing the serial so I just leave it out of the equation. I go through the process of changing the serial and, before I button everything up, I install the WNIC.  Now and then, I'll still have one that fails to be //seen// by the device.  Luckily, I have several on hand so I just swap them out until I find one that works.  Typically, once you find one that works, you can swap the original back into place and it'll //magically// work again.
 </note> </note>
-==== Changing the Serial via the Virtual Terminal ====+ 
 +=== Changing the Serial via the Virtual Terminal ===
  
 You should easily be able to do this with the [[shim_tool|RMA SHIM Tool]] from the manufacturer but I've had mixed results with that.  On some occasions, it worked.  Most, however, have failed miserably.  Because of the failure rate, I tend to use a virtual terminal session.  The virtual terminal sessions allows for some low-level access to the OS at a command line.  Most Linux distros have several virtual terminal sessions you can access. You should easily be able to do this with the [[shim_tool|RMA SHIM Tool]] from the manufacturer but I've had mixed results with that.  On some occasions, it worked.  Most, however, have failed miserably.  Because of the failure rate, I tend to use a virtual terminal session.  The virtual terminal sessions allows for some low-level access to the OS at a command line.  Most Linux distros have several virtual terminal sessions you can access.
Line 151: Line 157:
     * serial_number: <code bash>vpd -s "serial_number"="9999999999999999999999"</code>     * serial_number: <code bash>vpd -s "serial_number"="9999999999999999999999"</code>
     * mlb_serial_number: <code bash>vpd -s "mlb_serial_number"="9999999999999999999999"</code>     * mlb_serial_number: <code bash>vpd -s "mlb_serial_number"="9999999999999999999999"</code>
 +      * The ''mlb_serial_number'' entry is typically found to be something other than the serial number when you dive into machines fresh out of the box.  However, I've been making the same as the serial number without any issues when doing my repairs.
   * Might as well verify the serial number again: <code bash>vpd -l</code>   * Might as well verify the serial number again: <code bash>vpd -l</code>
   * If you've **messed up**, like I've done with a random capital letter in the entry, you can remove the entry with a command like: <code bash>vpd -d "serial_Number"</code>   * If you've **messed up**, like I've done with a random capital letter in the entry, you can remove the entry with a command like: <code bash>vpd -d "serial_Number"</code>
Line 161: Line 168:
   * Don't forget to revert whatever change you made to disable **write-protection**.   * Don't forget to revert whatever change you made to disable **write-protection**.
   * Because of the aforementioned warning, I tend to leave the case open until I get the device connected to a wireless network.  If the WNIC works and doesn't overheat within the first couple of minutes, I'll close the case and secure all the screws.   * Because of the aforementioned warning, I tend to leave the case open until I get the device connected to a wireless network.  If the WNIC works and doesn't overheat within the first couple of minutes, I'll close the case and secure all the screws.
 +
 +==== Changing Other VPD Entries ====
 +
 +The section above that describes how one can change the serial number via some VPD commands but you can also tweak some other things.  This comes in handy for anyone who wants to use the Guest Login feature.  It sets the aforementioned settings at the login screen.  So, if you were an American living in Canada with a Chromebook with Canadian firmware, and you had American friends who would come to visit, you could set these tweaks and the users wouldn't get Canadian settings at the login screen.  You'll see the settings I've used below but you can find more [[https://chromium.googlesource.com/chromiumos/platform/factory/+/factory-2268.16.B/vpd_data.py|here]] if you wanted other locales and timezones.  
 +
 +  * Change the locale: <code bash>vpd -s "initial_locale"="en-US"</code>
 +  * Change the timezone: <code bash>vpd -s "initial_timezone"="America/New_York"</code>
 +  * Change the keyboard layout: <code bash>vpd -s "keyboard_layout"="xkb:us::eng"</code>
 +  * Change the region: <code bash>vpd -s "region"="us"</code>
 +  * Specify the model: <code bash>vpd -s "model_name"="Lenovo 300e Chromebook 2nd Gen MTK"</code>
 +  * Specify the asset tag: <code bash>vpd -s "asset_tag"="IT-12345"</code>
 +  * Specify the machine type: <code bash>vpd -s "mtm"="81QC"</code>
 +  * Specify the Service Tag((typically found on Dell CBs and is typically set the same as the serial)): <code bash>"service_tag"="1GWZ083"</code>
 +  * Specify the manufacturer date: <code bash>"mfg_date"="2020-11-28"</code>
 +  * Specify the WNIC's MAC address: <code bash>"wifi_mac0"="04:6c:59:31:1b:ff"</code>
 +
 +
 +===== Changing the Hardware ID =====
 +I've had several instances where a bad HWID kept me from getting updates.  All I could do was reload the OS via USB to get the device updated; I couldn't update it via **Settings > About Chrome OS**.  After that, you were still //stuck// at that version until you did another manual update.
 +
 +For us, it was largely an issue with Lenovo 100e (81ER) motherboards that had been swapped out while they were under warranty.  They were coming to us with a //test// HWID and that wouldn't allow us to update the device via typical means.  We didn't notice it because our SOP is to reload the OS via USB since we don't have very good luck with the SHIM tool.  Naturally, the OS on the installation media is up-to-date so we never knew they weren't going to update after they left our workbench.  In retrospect, we should have been doing regular checks regarding the versions of Chrome OS on our network.
 +
 +<note tip>
 +The SHIM tool typically handles this but we have bad luck with it and it rarely finishes without errors.  So, try your SHIM tool if you have one that works.  If applicable, the hardware-level write protection may need to be disabled for this to work.  The device **needs** to be in [[chrome#developer_mode|Developer Mode]] so make sure you have those rights before you proceed.
 +</note>
 +
 +<note>
 +Our CBs are **managed** via Google Admin Console (GAC) so the process below may differ from your process.  However, the basic steps involving the command line should still be the same.</note>
 +
 +==== Manual Process ====
 +
 +  * Log into the affected (and enrolled) CB with any account.
 +  * Go to the following URL once you're logged in: [[chrome://policy/]]
 +  * Log into GAC and **deprovision** the device.
 +  * Back on affected CB, with the **policy** page already open, use the provided button to **reload** the policy.
 +    * You should see the **Status** change on the policy page, showing that it has been deprovisioned.
 +  * **Reload** the **OS** via USB or SD card.
 +    * Sometimes you can get around this step with a couple of power wash sequences.  
 +  * Log in with a user that's not //locked down//.
 +    * Your personal account will suffice.  Just make sure the user has the rights to be an **owner** of a device.  Student accounts typically do not have said rights.
 +  * Do what is needed to get into [[chrome#developer_mode|Dev Mode]].
 +  * Once you're in Dev Mode, hit **Ctrl** + **Alt** + **→**((The ''→'' key is typically referred to as F2.)) once it's booted into the OS and sitting at the typical welcome screen.
 +  * You should be dropped into the shell, asking for creds.
 +    * User: **root**
 +    * Password: You should not be prompted for a password...
 +  * Once logged in, run the following commands((the commands are **case-sensitive**)):
 +    * You must be in the **/tmp** directory; it won't work in your home directory: <code bash>cd /tmp</code>
 +    * **Read** the **GBB** section of the flash chip and dump the data to a **BIN** file: <code bash>flashrom --read --image GBB:gbb.bin</code>
 +      * If you'd like to see the HWID being reported, you can get it out of the file you just created: <code bash>gbb_utility --get gbb.bin --hwid</code>
 +    * **Write** the **HWID** to the **BIN** file: <code bash>gbb_utility --set --hwid "ROBO D5B-B4K-E5Q-45M-Y8C-A92" gbb.bin</code>
 +      * The aforementioned HWID is a valid one for Lenovo 100e Chromebooks, type **81ER**.
 +        * If you need another HWID, maybe [[cb_hwid|this page]] will help.
 +      * The **HWID** is always **capitalized**.
 +    * **Flash** the GBB section of the device with the **updated** BIN file: <code bash>flashrom --write --image GBB:gbb.bin</code>
 +  * **Reboot** the device via the following command: <code bash>reboot</code>
 +  * Log in with the guest account and **test** whether or not you can **update** the OS via **Settings > About Chrome OS**.
 +  * Reboot the device and [[chrome#exit_developer_mode|exit Dev Mode]]
 +    * You should just be able to hit the **space bar** to get out of Dev Mode.
 +    * Re-enroll the device.
  
 ===== Useful Terminal Commands ===== ===== Useful Terminal Commands =====
Line 173: Line 239:
     * In most cases, you'll only have one address because you'll only have one adapter preset so your output should look similar to: <code bash>Address: a81d16157bd7</code>     * In most cases, you'll only have one address because you'll only have one adapter preset so your output should look similar to: <code bash>Address: a81d16157bd7</code>
  
-==== Changing Other VPD Entries ==== 
- 
-There's a [[chrome#changing_the_serial_via_the_virtual_terminal|section]] above that describes how one can change the serial number via some VPD commands but you can also tweak some other things.  This comes in handy for anyone who wants to use the Guest Login feature.  It sets the aforementioned settings at the login screen.  So, if you were an American living in Canada with a Chromebook with Canadian firmware, and you had American friends who would come to visit, you could set these tweaks and the users wouldn't get Canadian settings at the login screen.  You'll see the settings I've used below but you can find more [[https://chromium.googlesource.com/chromiumos/platform/factory/+/factory-2268.16.B/vpd_data.py|here]] if you wanted other locales and timezones.   
- 
-  * Change the locale: <code bash>vpd -s "initial_locale"="en-US"</code> 
-  * Change the timezone: <code bash>vpd -s "initial_timezone"="America/New_York"</code> 
-  * Change the keyboard layout: <code bash>vpd -s "keyboard_layout"="xkb:us::eng"</code> 
-  * Change the region: <code bash>vpd -s "region"="us"</code> 
-  * Specify the model((I don't see this one too often.)): <code bash>vpd -s "model_name"="Lenovo 300e Chromebook 2nd Gen MTK"</code> 
  
 ==== Changing the Date ==== ==== Changing the Date ====
Line 195: Line 252:
     * Find the **MAC address** under the ''ifconfig'' and ''network-devices'' sections.     * Find the **MAC address** under the ''ifconfig'' and ''network-devices'' sections.
     * Find the **IP address** under the ''network-devices'' section.     * Find the **IP address** under the ''network-devices'' section.
 +
 +===== Battery Disconnect =====
 +No, this is not about taking apart the device and unplugging your battery...  This is how CBs are shipped.  There's a sequence that allows the device to be powered down and a //software switch// disconnects the battery for long-term storage.  To get out of this mode, you have to plug the CB into a power source - just like you have to do when you unbox a new CB.  
 +
 +  * Charge the device.  
 +    * Ideally, a full charge is nice but Google says 80% is fine.
 +  * With the device plugged into a power source, make sure the device is powered on.
 +  * While holding the **refresh button**((F3)) and the **power button**, pull out the charging cable.
 +    * With touchscreens like Lenovo's 300e CBs, the power button is on the side.  It may be difficult to reach both the buttons with one hand so I tend to use two hands for the buttons while the device is in my lap.  I then use my foot to step on the power cord and then lift the CB away - popping out the power cord.  
 +
 +To get the device to power on after being put into a battery-disconnect state, simply plug the device in and power it on.
 +
  • computers/chromebooks/chromebooks.1571748396.txt.gz
  • Last modified: 2019/10/22 12:46
  • by localadmin