[summary]Een RMA shim is nodig als een servicecentrum het moederbord moet vervangen, en is vereist om de firmware of software-image van het apparaat opnieuw te installeren.[\/summary]
Overzicht
RMA staat voor Return Merchandise Authorization (retourgoedkeuring). Dit is wanneer er een probleem optreedt met een apparaat dat niet door de eindgebruiker kan worden opgelost, en de gebruiker ervoor kiest om het apparaat terug te sturen naar het servicecentrum voor diagnose en reparatie.
Normaal gesproken is het voor een servicecentrum lastig om diagnostische tools of reparatieprogramma's uit te voeren die niet door Google zijn ondertekend, vanwege de geverifieerde opstart- en schrijfbeveiliging van Chrome OS. Om deze problemen te omzeilen, heeft de reparatiepartner een RMA shim nodig. Deze tool is ondertekend door Google en stelt een partner in staat om eigen aangepaste diagnostische programma's uit te voeren om onderdelen te controleren en te verifiëren.
De image van de shim is ontworpen als een combinatie van reeds bestaande Chrome OS factory bundle-onderdelen, en bevat het volgende:
- Factory install shim
- Release-image (FSI)
- Test-image
- Factory toolkit
- HWID-bundel
- Andere optionele onderdelen (firmware, volledig script, etc.)
Individuele RMA shims vs. Universele RMA shims
Hoewel ze uiterst nuttig zijn, is het probleem met gewone RMA shims voor één bord dat ze specifiek zijn voor het model moederbord. Dit kan het beheren van shim-images op fysieke USB-stations lastig maken.
Dit probleem kan worden opgelost door een universele shim te maken. Een universele shim kan meerdere RMA shims voor verschillende borden bevatten, waardoor het makkelijker wordt om de images te beheren en te distribueren.
Het nadeel hiervan is dat de universele shims behoorlijk groot kunnen zijn, aangezien de shim van elk bord ongeveer 3 GB aan opslagruimte nodig heeft. Een universele shim die 3 borden bevat, heeft dus een totale grootte van 9 - 10 GB nodig.
Welk programma is nodig
image_tool is het programma dat nodig is om RMA shims te beheren. Dit kan worden gedownload van de openbare factory-repository met de volgende opdrachten.
[code]
$ git clone https:\/\/chromium.googlesource.com\/chromiumos\/platform\/factory
$ cd factory\/
[\/code]
De tool bevindt zich in setup\/image_tool. Het wordt sterk aanbevolen dat een gebruiker de git-repository periodiek synchroniseert om ervoor te zorgen dat ze de nieuwste versie hebben. Dit kan met de volgende opdracht...
[code]$ git pull[\/code]
Zodra de factory-repository is gedownload, kunt u de unit-test voor de RMA-opdrachten uitvoeren om er zeker van te zijn dat de opdrachten correct worden uitgevoerd op uw machine door gebruik te maken van...
[code]$ py\/tools\/image_tool_rma_unittest.py[\/code]
De RMA-testlijst in de toolkit aanpassen
De RMA-testlijst is anders dan de testlijst die wordt gebruikt in de productielijn van de fabriek. Er zal bijvoorbeeld geen factory-server zijn tijdens het RMA-proces. Daarom hebben we een andere testlijst nodig voor de RMA.
Het aanbevolen proces voor het maken van een testlijst is het maken van een lijst die overerft van generic_rma.test_list.json. Dit zou de algemene RMA-instellingen moeten regelen, zoals het uitschakelen van de factory-server en het inschakelen van rma_mode, samen met het toevoegen van de fabriekstests aan de RMAFFT-groep.
[code]
{
"inherit": [
"generic_rma.test_list"
],
"label": "RMA Test List for <project>",
"definitions": {
"RMAFFT": {
"subtests": [
...
...
]
}
}
}
[\/code]
Het wordt ook aanbevolen om de volgende instellingen te wijzigen...
- Fabriekstests in de servicecentra worden uitgevoerd met verkorte testcycli. Verminder bijvoorbeeld de duur van de stresstest van 4 uur naar 10 minuten.
- Controleer of alle reservemoederborden die in servicecentra worden gebruikt, SMT-tests voltooien.
- Controleer of alle reservemoederborden een registratiecode hebben die in RW_VPD is gebrand tijdens het fabrieksproces, voordat de borden naar de servicecentra worden verzonden.
- Bespreek met de OEM om testitems voor het RMA-proces te finaliseren.
- Wijzig of verwijder geen enkele GRT (Google Required Test) items.
- Zorg ervoor dat de firmware-schrijfbeveiliging is ingeschakeld (wat waar zou moeten zijn als
constants.phaseis ingesteld op PVT).
De onderdelen van de bundel combineren tot de RMA shim-image
Nadat de bundelonderdelen gereed zijn, kunt u de onderdelen combineren tot één RMA shim-image. De RMA shim-image kan vanuit de factory-bundel worden gemaakt met de opdracht image_tool rma create:
[code]
$ setup\/image_tool rma create
--board BOARD
--factory_shim path\/to\/factory_install_shim.bin
--test_image path\/to\/chromiumos_test_image.bin
--toolkit path\/to\/install_factory_toolkit.run
--release_image path\/to\/chromiumos_image.bin
--hwid path\/to\/hwid_bundle.sh
--output rma_image.bin
[\/code]
De opdracht kan worden vereenvoudigd, mits alle onderdelen in hun juiste bundle-mappen worden geplaatst (release_image\/, test_image\/, etc.):
[code]
$ setup\/image_tool rma create
--board BOARD
--output rma_image.bin
[\/code]
Bovendien kunnen we ook de actieve testlijst specificeren wanneer we een RMA shim maken. Op die manier hoeven we de active_test_list.json niet aan te passen in de toolkit
[code]
$ setup\/image_tool rma create
--board BOARD
--output rma_image.bin
--active_test_list rma_main
[\/code]
Een universele RMA shim maken
We kunnen een universele RMA shim maken met de opdracht image_tool rma merge.
[code]
$ setup\/image_tool rma merge
-i soraka.bin scarlet.bin
-o universal.bin
[\/code]
Om een eerder gegenereerde output-image te verwijderen, moet u de optie -f opgeven:
[code]
$ setup\/image_tool rma merge
-i soraka.bin scarlet.bin
-o universal.bin -f
[\/code]
Uw universele RMA shim updaten
De opdracht image_tool rma merge ondersteunt het samenvoegen van universele shims. Als er dubbele borden zijn, wordt de gebruiker gevraagd welk bord ze willen gebruiken. Deze functie kan worden gebruikt om een bord in een universele shim bij te werken met de bijgewerkte RMA shim voor één bord.
[code]
$ setup\/image_tool rma merge
-i universal.bin soraka_new.bin
-o universal_new.bin
Scanning 2 input image files...
Board soraka has more than one entry.
========================================================================
(1)
From universal.bin
board : soraka
install_shim : 10323.39.28
release_image : 10575.37.0 (Official Build) dev-channel soraka
test_image : 10323.39.24 (Official Build) dev-channel soraka test
toolkit : soraka Factory Toolkit 10323.39.24
firmware : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid : None
complete : None
toolkit_config: None
lsb_factory : lsb_factory
========================================================================
(2)
From soraka_new.bin
board : soraka
install_shim : 10323.39.31
release_image : 10575.37.0 (Official Build) dev-channel soraka
test_image : 10323.39.24 (Official Build) dev-channel soraka test
toolkit : soraka Factory Toolkit 10323.39.24
firmware : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid : None
complete : None
toolkit_config: None
lsb_factory : lsb_factory
========================================================================
Please select an option [1-2]:
[\/code]
De RMA shim gebruiken
Flash de ram_image.bin naar een USB-station en start het op met ontwikkelaarsmodus ingeschakeld, en uw apparaat in herstelmodus.
De shim-image naar een USB-station flashen
Gebruik de dd-opdracht om de shim-image naar uw opslagapparaat te flashen, waarbij u de \/dev\/sdx vervangt door de naam van uw opslagapparaat.
[code]$ sudo dd if=rma_image.bin of=\/dev\/sdX bs=8M iflag=fullblock oflag=dsync[\/code]
Als u de OS-ontwikkelomgeving op uw apparaat hebt, kunt u de ``cross flash``-opdracht in chroot gebruiken.
[code]$ cros flash usb:\/\/ rma_image.bin[\/code]
Opstarten vanaf de RMA shim op laptops
- Ga naar de herstelmodus.
- Druk op
CTRL + Dom de ontwikkelaarsschakelaar in te schakelen. - Druk op
ENTERom te bevestigen. - Ga opnieuw naar de herstelmodus (u hoeft niet te wachten op het wissen).
- Plaats de USB-stick met
rma_image.binen start ervan op.
Opstarten vanaf de RMA shim op een tablet
- Ga naar de herstelmodus.
- Druk op
VOL_UP + VOL_DOWNom het herstelmenu weer te geven. - Druk op
VOL_UPofVOL_DOWNom de cursor naar “Confirm Disabling OS Verification” te verplaatsen en druk opPOWERom dit te selecteren. - Ga opnieuw naar de herstelmodus (u hoeft niet te wachten op het wissen).
- Plaats de USB-stick met
rma_image.binen start ervan op.
Navigeren door het RMA shim-menu
De RMA shim heeft een menu waarmee een gebruiker verschillende acties kan selecteren, die worden gedocumenteerd in het README-bestand. Als een gebruiker een RMA shim maakt via de opdracht image_tool rma create, voegt de tool de vlag RMA_AUTORUN=1 toe aan het lab-factory-bestand. Dit stelt de standaardacties in het menu in.
Aanvullende RMA-opdrachten
Er zijn andere image_tool-opdrachten die het verifiëren en aanpassen van uw RMA shims makkelijker kunnen maken. Gedetailleerde beschrijvingen zijn te vinden via het --help-argument voor andere opdrachten. Bijvoorbeeld...
[code]$ setup\/image_tool rma show --help[\/code]
De bundelonderdelen in een RMA shim weergeven
De opdracht image_tool rma show kan de versie van het onderdeel in uw RMA shim weergeven
[code]
$ setup\/image_tool rma show -i soraka.bin
This RMA shim contains boards: soraka
========================================================================
board : soraka
install_shim : 10323.39.31
release_image : 10575.37.0 (Official Build) dev-channel soraka
test_image : 10323.39.24 (Official Build) dev-channel soraka test
toolkit : soraka Factory Toolkit 10323.39.24
firmware : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid : None
complete : None
toolkit_config: cb5b52296cd4fcb0418b6879c0acc32b
lsb_factory : d2c9d6a7d32ee3b1279c2b0b27244727
========================================================================
[\/code]
Dezelfde opdracht kan ook worden gebruikt voor universele RMA shims.
[code]
$ setup\/image_tool rma show -i universal.bin
This RMA shim contains boards: soraka scarlet
========================================================================
board : soraka
install_shim : 10323.39.31
release_image : 10575.37.0 (Official Build) dev-channel soraka
test_image : 10323.39.24 (Official Build) dev-channel soraka test
toolkit : soraka Factory Toolkit 10323.39.24
firmware : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid : None
complete : None
toolkit_config: cb5b52296cd4fcb0418b6879c0acc32b
lsb_factory : d2c9d6a7d32ee3b1279c2b0b27244727
========================================================================
board : scarlet
install_shim : 10211.68.0
release_image : 10575.67.0 (Official Build) stable-channel scarlet
test_image : 10211.53.0 (Official Build) dev-channel scarlet test
toolkit : scarlet Factory Toolkit 10211.53.0
firmware : Google_Scarlet.10388.26.0
hwid : None
complete : None
toolkit_config: None
lsb_factory : c82d4c1f831bf20d7cdc70138fe4ef72
========================================================================
[\/code]
Bundelonderdelen in een RMA shim vervangen
De opdracht image_tool rma replace kan onderdelen vervangen die zich in uw RMA shim bevinden. U kunt bijvoorbeeld de HWID-bundel vervangen door een nieuwe:
[code]$ setup\/image_tool rma replace -i rma_image.bin --hwid new_hwid_bundle.sh[\/code]
Het --board-argument is nodig als u iets op een universele shim wilt vervangen.
[code]
$ setup\/image_tool rma replace -i universal.bin
--board soraka --hwid new_hwid_bundle.sh
[\/code]
Deze opdracht kan ook release_image, test_image, toolkit, factory_shim, firmware, hwid, complete_script en toolkit_config vervangen.
Een RMA shim voor één bord uit uw universele shim extraheren
De opdracht image_tool rma extract kan worden gebruikt om een RMA shim voor één bord uit uw universele shim te extraheren.
[code]
$ setup\/image_tool rma extract -i universal.bin -o extract.bin
Scanning input image file...
Please select a board to extract.
========================================================================
(1)
board : soraka
install_shim : 10323.39.31
release_image : 10575.37.0 (Official Build) dev-channel soraka
test_image : 10323.39.24 (Official Build) dev-channel soraka test
toolkit : soraka Factory Toolkit 10323.39.24
firmware : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid : None
complete : None
toolkit_config: cb5b52296cd4fcb0418b6879c0acc32b
lsb_factory : d2c9d6a7d32ee3b1279c2b0b27244727
========================================================================
(2)
board : scarlet
install_shim : 10211.68.0
release_image : 10575.67.0 (Official Build) stable-channel scarlet
test_image : 10211.53.0 (Official Build) dev-channel scarlet test
toolkit : scarlet Factory Toolkit 10211.53.0
firmware : Google_Scarlet.10388.26.0
hwid : None
complete : None
toolkit_config: None
lsb_factory : c82d4c1f831bf20d7cdc70138fe4ef72
========================================================================
Please select an option [1-2]:
[\/code]
De lab-factory configuratie in uw RMA shim bewerken
De opdracht image_tool edit_lsb kan de lsb-factory-configuratie wijzigen, zoals de RMA_AUTORUN-vlag.
[code]
$ setup\/image_tool edit_lsb -i rma_image.bin
Current LSB config:
========================================================================
CHROMEOS_AUSERVER=http:\/\/...
CHROMEOS_DEVSERVER=http:\/\/...
FACTORY_INSTALL=1
HTTP_SERVER_OVERRIDE=true
FACTORY_INSTALL_FROM_USB=1
RMA_AUTORUN=true
========================================================================
(1) Modify Chrome OS Factory Server address.
(2) Modify cutoff config in cros payload (only for old devices).
(3) Enable\/disable complete prompt in RMA shim.
(4) Enable\/disable autorun in RMA shim.
(q) Quit without saving changes.
(w) Apply changes and exit.
Please select an option [1-4, q, w]:
[\/code]
daarnaast kunt u gebruiken
[code]$ setup\/image_tool edit_lsb -i universal.bin --board soraka[\/code]
De toolkit-configuratie in een RMA shim bewerken
De opdracht image_tool edit_toolkit_config kan de toolkit-configuratie wijzigen, zoals de actieve testlijst en de cutoff-configuratie.
[code]
$ setup\/image_tool edit_toolkit_config -i rma_image.bin
Toolkit config:
========================================================================
{
"cutoff": {
"CUTOFF_BATTERY_MAX_PERCENTAGE": 90,
"CUTOFF_BATTERY_MIN_PERCENTAGE": 60,
"CUTOFF_METHOD": "battery_cutoff",
"CUTOFF_AC_STATE": "remove_ac"
},
"active_test_list": {
"id": "main_rma"
}
}
========================================================================
(1) Modify active test list.
(2) Modify test list constants.
(3) Modify cutoff config.
(q) Quit without saving changes.
(w) Apply changes and exit.
Please select an option [1-3, q, w]:
[\/code]
daarnaast kunt u gebruiken
[code]$ setup\/image_tool edit_toolkit_config -i universal.bin --board soraka[\/code]
De toolkit in een RMA shim uitpakken en opnieuw inpakken
De opdracht image_tool payload toolkit kan de factory toolkit in een RMA shim uitpakken en opnieuw inpakken.
[code]
$ setup\/image_tool payload toolkit -i rma_image.bin --unpack toolkit_path
(Edit some files in toolkit_path\/ ...)
$ setup\/image_tool payload toolkit -i rma_image.bin --repack toolkit_path
[\/code]
of
[code]
$ setup\/image_tool payload toolkit
-i universal.bin --board soraka --unpack toolkit_path
(Edit some files in toolkit_path\/ ...)
$ setup\/image_tool payload toolkit
-i universal.bin --board soraka --repack toolkit_path
[\/code]
0 opmerkingen