laptop:lenovo-x200:flash-lenovo-x200-libreboot
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| laptop:lenovo-x200:flash-lenovo-x200-libreboot [2021/11/09 01:34] – chuck | laptop:lenovo-x200:flash-lenovo-x200-libreboot [2025/01/19 23:27] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ======Flashing my Lenovo x200 with Libreboot====== | ======Flashing my Lenovo x200 with Libreboot====== | ||
| + | <WRAP info smaller> | ||
| + | This guide is fairly old (2020/2021) and I haven' | ||
| + | |||
| + | Most of the steps will still be relevant but I suggest cross-checking with the Libreboot site for any necessary updates until I can update this guide. | ||
| + | |||
| + | I apologize for any inconveniences this causes. | ||
| + | </ | ||
| I accidentally botched my original Libreboot flash during an update, so I decided to take some pictures and type this guide to hopefully help someone else. | I accidentally botched my original Libreboot flash during an update, so I decided to take some pictures and type this guide to hopefully help someone else. | ||
| Line 33: | Line 40: | ||
| After the hostname, it shows the current directory. Eg: | After the hostname, it shows the current directory. Eg: | ||
| - | <code bash> | + | * We're on the main computer in the home (~) directory:<code bash> |
| - | # We're on the main computer in the home (~) directory | + | |
| [user@mainpc: | [user@mainpc: | ||
| - | + | </ | |
| - | # We're on the BBB in the armv7l directory | + | |
| [debian@beaglebone: | [debian@beaglebone: | ||
| </ | </ | ||
| ---- | ---- | ||
| + | |||
| =====Gather Supplies===== | =====Gather Supplies===== | ||
| + | |||
| + | <WRAP announcement blue smaller> | ||
| + | ==Attention== | ||
| + | The BeagleBone Black used in this guide is old.\\ | ||
| + | Head over to the Libreboot site for updated device recommendations: | ||
| + | https:// | ||
| + | </ | ||
| First, gather the supplies needed to perform the flash. | First, gather the supplies needed to perform the flash. | ||
| Line 48: | Line 62: | ||
| {{ : | {{ : | ||
| - | **Pictured** | + | ==Pictured== |
| * BeagleBone Black | * BeagleBone Black | ||
| * 5V Power Supply (for the BBB) | * 5V Power Supply (for the BBB) | ||
| Line 55: | Line 69: | ||
| * #0 Phillips Screwdriver | * #0 Phillips Screwdriver | ||
| - | **Not Pictured** | + | ==Not Pictured== |
| * Lenovo X200 - Not X200S or X200T | * Lenovo X200 - Not X200S or X200T | ||
| * Second computer - to connect to the BBB | * Second computer - to connect to the BBB | ||
| Line 67: | Line 81: | ||
| =====Prepare the Files===== | =====Prepare the Files===== | ||
| + | |||
| + | <WRAP info> | ||
| + | These instructions are currently for **Libreboot 20160907** which has a different gpg signing key than **Libreboot 20210522** and newer! | ||
| + | </ | ||
| We need to download the necessary files from the Libreboot site and have them all set up and ready to go for when we get the BBB connected to the X200. | We need to download the necessary files from the Libreboot site and have them all set up and ready to go for when we get the BBB connected to the X200. | ||
| Line 80: | Line 98: | ||
| </ | </ | ||
| * Select a HTTPS mirror | * Select a HTTPS mirror | ||
| - | * Click stable/ | + | * Click **stable/ |
| - | * Right click and download the following to the ~/libreboot directory: | + | * Right click and download the following to the '' |
| - | * SHA512SUMS | + | |
| - | * SHA512SUMS.sig | + | |
| - | * libreboot_r20160907_util.tar.xz | + | |
| - | * Click rom/ then grub/ | + | * Click **rom/ > grub/** |
| - | * Right click and download the following to the ~/ | + | * Right click and download the following to the '' |
| - | * libreboot_r20160907_grub_x200_8mb.tar.xz | + | |
| <WRAP important> | <WRAP important> | ||
| - | //You need to verify what size flash chip your X200 has. That will be done below at the Checking Communication section. If you’re not sure, come back to this section once you know what rom to download.// | + | //You need to verify what size flash chip your X200 has. That will be done below at the [[laptop: |
| </ | </ | ||
| - | You should now have a file structure that looks like similar to this: | + | * You should now have a file structure that looks similar to this:< |
| - | <code bash> | + | |
| [user@mainpc: | [user@mainpc: | ||
| [user@mainpc: | [user@mainpc: | ||
| Line 152: | Line 169: | ||
| ---- | ---- | ||
| - | ====Prepare | + | ====Obtain |
| We need to set the MAC address for our wired interface in the rom. There are a few ways to get it. | We need to set the MAC address for our wired interface in the rom. There are a few ways to get it. | ||
| Line 162: | Line 179: | ||
| link/ether XX: | link/ether XX: | ||
| </ | </ | ||
| - | * Read the first 6 bytes from position '' | + | * Read the first 6 bytes from position '' |
| - | * If you need to use the factory.rom method, wait until you dump the factory rom to get the mac address, then come back and finish these steps. | + | [debian@beaglebone: |
| + | 00001000: XXXX XXXX XXXX ...' | ||
| + | </ | ||
| + | * If you need to use the factory.rom method, wait until you [[laptop: | ||
| ---- | ---- | ||
| + | ====Prepare the ROM==== | ||
| * Check architecture:< | * Check architecture:< | ||
| [user@mainpc: | [user@mainpc: | ||
| Line 273: | Line 294: | ||
| Now that we’re all connected we need to verify that we can communicate with the chip. | Now that we’re all connected we need to verify that we can communicate with the chip. | ||
| - | < | + | * Check the architecture:<code bash> |
| - | # Check the architecture | + | |
| [debian@beaglebone: | [debian@beaglebone: | ||
| armv7l | armv7l | ||
| + | </ | ||
| + | * Change directories:< | ||
| [debian@beaglebone: | [debian@beaglebone: | ||
| + | </ | ||
| + | * Run flashrom:< | ||
| [debian@beaglebone: | [debian@beaglebone: | ||
| flashrom v0.9.9-unknown on Linux 4.14.58-ti-r66 (armv7l) | flashrom v0.9.9-unknown on Linux 4.14.58-ti-r66 (armv7l) | ||
| Line 287: | Line 311: | ||
| </ | </ | ||
| - | You can see that it found the Macronix flash chip and that it’s 8192kB. That lets us know that we need to use the 8Mb rom from the Libreboot mirror. If you need to, go back to Prepare the Files and download the proper rom and follow the steps up to disassembling the X200. | + | You can see that it found the Macronix flash chip and that it’s 8192kB. That lets us know that we need to use the 8Mb rom from the Libreboot mirror. If you need to, go back to [[laptop: |
| ---- | ---- | ||
| Line 297: | Line 321: | ||
| I used the time command to show how long it took to complete the transfer. You don’t have to use it if you don’t want to but at least this gives you an idea on what to expect time-wise. | I used the time command to show how long it took to complete the transfer. You don’t have to use it if you don’t want to but at least this gives you an idea on what to expect time-wise. | ||
| - | < | + | |
| + | * Create backup one:< | ||
| [debian@beaglebone: | [debian@beaglebone: | ||
| flashrom v0.9.9-unknown on Linux 4.14.58-ti-r66 (armv7l) | flashrom v0.9.9-unknown on Linux 4.14.58-ti-r66 (armv7l) | ||
| Line 309: | Line 334: | ||
| user 0m1.029s | user 0m1.029s | ||
| sys 0m4.249s | sys 0m4.249s | ||
| + | </ | ||
| + | * Create backup two:< | ||
| [debian@beaglebone: | [debian@beaglebone: | ||
| flashrom v0.9.9-unknown on Linux 4.14.58-ti-r66 (armv7l) | flashrom v0.9.9-unknown on Linux 4.14.58-ti-r66 (armv7l) | ||
| Line 323: | Line 349: | ||
| </ | </ | ||
| - | ===Verify Factory ROMs are the same=== | + | * Verify Factory ROMs are the same:< |
| - | < | + | |
| [debian@beaglebone: | [debian@beaglebone: | ||
| 45ea8db426c0fb776d397cfc4312cef2eb8262463538fb927dd0ebb98386218d2b3b64ae6bc5b454279e442de2b6dd30eb4bb584de6be4a09d05ffb20a633330 | 45ea8db426c0fb776d397cfc4312cef2eb8262463538fb927dd0ebb98386218d2b3b64ae6bc5b454279e442de2b6dd30eb4bb584de6be4a09d05ffb20a633330 | ||
| Line 330: | Line 355: | ||
| </ | </ | ||
| - | Store the factory.rom somewhere safe. You may need it for recovery purposes or to revert back to factory BIOS some day. | + | * Store the factory.rom somewhere safe. You may need it for recovery purposes or to revert back to factory BIOS some day. |
| - | MAC Address | + | |
| - | If you need to get the mac address | + | * Now is the time to get the mac address |
| - | < | + | |
| - | [debian@beaglebone:libreboot]$ xxd -s 0x1000 -l 6 factory.rom | + | |
| - | 00001000: XXXX XXXX XXXX ...' | + | |
| - | </ | + | |
| - | + | ||
| - | The mac address has been replaced with Xs and colored dark blue in the above output. Use those numbers for the '' | + | |
| ---- | ---- | ||
| Line 347: | Line 365: | ||
| And now for the moment of truth! | And now for the moment of truth! | ||
| - | < | + | * Flash the chip:< |
| [debian@beaglebone: | [debian@beaglebone: | ||
| flashrom v0.9.9-unknown on Linux 4.14.58-ti-r66 (armv7l) | flashrom v0.9.9-unknown on Linux 4.14.58-ti-r66 (armv7l) | ||
| Line 370: | Line 388: | ||
| If you’re planning on using wifi, it is recommended to replace the factory Intel wifi chip. The factory chip requires proprietary software to work correctly, and we’re librebooting to rid our x200 of closed source software! | If you’re planning on using wifi, it is recommended to replace the factory Intel wifi chip. The factory chip requires proprietary software to work correctly, and we’re librebooting to rid our x200 of closed source software! | ||
| - | |||
| - | See Recommended for suggestions on what to change it with. | ||
| For reference, I replaced mine with an Atheros 9285G and the Libreboot tutorial shows them using a Atheros AR5B95. | For reference, I replaced mine with an Atheros 9285G and the Libreboot tutorial shows them using a Atheros AR5B95. | ||
| Line 403: | Line 419: | ||
| * Double check connections | * Double check connections | ||
| * Try a slower spispeed | * Try a slower spispeed | ||
| - | * Check BBB Pin options:< | + | * Check BBB Pin options:< |
| # List available pin configurations | # List available pin configurations | ||
| [debian@beaglebone: | [debian@beaglebone: | ||
laptop/lenovo-x200/flash-lenovo-x200-libreboot.1636421654.txt.gz · Last modified: by chuck
