Panoramica
RMA sta per Return Merchandise Authorization (Autorizzazione al Rientro della Merce). Si verifica quando un problema del dispositivo non può essere risolto dall'utente finale e quest'ultimo sceglie di restituire il dispositivo al centro assistenza per la diagnosi e la riparazione.
Di norma, è difficile per un centro assistenza eseguire strumenti diagnostici o programmi di riparazione non firmati da Google, a causa dell'avvio verificato (verified boot) e della protezione da scrittura di Chrome OS. Per aggirare questi problemi, il partner di riparazione necessiterà di un'RMA shim. Questo strumento è firmato da Google e consente al partner di eseguire i propri programmi diagnostici personalizzati per controllare e verificare i componenti.
L'immagine della shim è progettata per essere una combinazione di componenti preesistenti del bundle di fabbrica di Chrome OS, e include quanto segue:
- Shim di installazione di fabbrica
- Immagine di rilascio (FSI)
- Immagine di test
- Kit attrezzi di fabbrica
- Bundle HWID
- Altri componenti opzionali (firmware, script completi, ecc.)
RMA shim singole vs. RMA shim universali
Sebbene estremamente utili, il problema delle normali RMA shim per schede singole è che sono specifiche per il modello di scheda madre. Ciò può rendere difficile la gestione delle immagini shim su unità USB fisiche.
Questo problema può essere risolto creando una shim universale. Una shim universale può contenere più RMA shim per schede diverse, facilitando la gestione e la distribuzione delle immagini.
Il compromesso è che le shim universali possono essere piuttosto grandi, poiché la shim di ogni scheda richiederà circa 3 GB di spazio di archiviazione. Pertanto, una shim universale contenente 3 schede dovrà avere una dimensione totale di 9 - 10 GB.
Quale programma è necessario
image_tool è il programma necessario per gestire le RMA shim. Può essere scaricato dal repository pubblico di fabbrica utilizzando i seguenti comandi.
$ git clone https://chromium.googlesource.com/chromiumos/platform/factory $ cd factory/
Lo strumento si troverà in setup/image_tool. È caldamente consigliato che l'utente sincronizzi periodicamente il repository git per assicurarsi di ottenere la versione più recente. Ciò può essere fatto con il seguente comando...
$ git pull
Una volta scaricato il repository di fabbrica, è possibile eseguire il test unitario per i comandi RMA per assicurarsi che i comandi vengano eseguiti correttamente sulla propria macchina utilizzando...
$ py/tools/image_tool_rma_unittest.py
Regolazione dell'elenco dei test RMA nel kit attrezzi di fabbrica
L'elenco dei test RMA è diverso dall'elenco dei test utilizzato nella linea di produzione di fabbrica. Ad esempio, non ci sarà un server di fabbrica durante il processo RMA. Ecco perché avremo bisogno di un elenco di test diverso per l'RMA.
Il processo consigliato per creare un elenco di test consiste nel creare un elenco che erediti da generic_rma.test_list.json. Questo dovrebbe occuparsi delle impostazioni RMA generali come la disattivazione del server di fabbrica e l'attivazione di rma_mode, oltre ad aggiungere i test di fabbrica al gruppo RMAFFT.
{
"inherit": [
"generic_rma.test_list"
],
"label": "RMA Test List for <project>",
"definitions": {
"RMAFFT": {
"subtests": [
...
...
]
}
}
}
Si consiglia inoltre di modificare le seguenti impostazioni...
- I test di fabbrica nei centri assistenza vengono eseguiti con cicli di test ridotti. Ad esempio, ridurre la durata del test di stress da 4 ore a 10 minuti.
- Verificare che tutte le schede madri di ricambio utilizzate nei centri assistenza completino i test SMT.
- Verificare che tutte le schede madri di ricambio abbiano un codice di registrazione che sia stato masterizzato nel RW_VPD durante il processo di fabbrica prima di inviare le schede ai centri assistenza.
- Discutere con l'OEM per finalizzare gli elementi di test per il processo RMA.
- Non modificare o rimuovere alcun elemento GRT (Google Required Test - Test richiesto da Google).
- Assicurarsi che la protezione da scrittura del firmware sia abilitata (il che dovrebbe essere vero se
constants.phaseè impostato su PVT).
Combinazione dei componenti del bundle di fabbrica nell'immagine RMA shim
Dopo che i componenti del bundle sono pronti, è possibile combinare i componenti in un'unica immagine RMA shim. L'immagine RMA shim può essere creata dal bundle di fabbrica utilizzando il comando image_tool rma create:
$ 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
Il comando può essere semplificato a condizione che tutti i componenti siano inseriti nelle loro corrette directory del bundle (release_image/, test_image/, ecc.):
$ setup/image_tool rma create
--board BOARD
--output rma_image.bin
Inoltre, possiamo anche specificare l'elenco dei test attivo quando creiamo un'RMA shim. In questo modo non avremo bisogno di modificare il file active_test_list.json nel kit attrezzi di fabbrica
$ setup/image_tool rma create
--board BOARD
--output rma_image.bin
--active_test_list rma_main
Creazione di un'RMA shim universale
Possiamo creare un'RMA shim universale utilizzando il comando image_tool rma merge.
$ setup/image_tool rma merge
-i soraka.bin scarlet.bin
-o universal.bin
Per eliminare un'immagine di output generata in precedenza, sarà necessario specificare l'opzione -f:
$ setup/image_tool rma merge
-i soraka.bin scarlet.bin
-o universal.bin -f
Aggiornamento dell'RMA shim universale
Il comando image_tool rma merge supporta la fusione di shim universali. Se sono presenti schede duplicate, all'utente verrà chiesto quale scheda desidera utilizzare. Questa funzione può essere utilizzata per aggiornare una scheda in una shim universale utilizzando l'RMA shim per scheda singola aggiornata.
$ 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]:
Utilizzo dell'RMA shim
Flash l'immagine ram_image.bin su un'unità USB e avviala con la modalità sviluppatore abilitata e il dispositivo in modalità di recupero.
Come flashare l'immagine shim su un'unità USB
Usa il comando dd per flashare l'immagine shim sul tuo dispositivo di archiviazione, sostituendo /dev/sdx con il nome del tuo dispositivo di archiviazione.
$ sudo dd if=rma_image.bin of=/dev/sdX bs=8M iflag=fullblock oflag=dsync
Se hai l'ambiente di sviluppo OS sul tuo dispositivo, allora puoi usare il comando ``cross flash`` in chroot.
$ cros flash usb:// rma_image.bin
Come avviare dall'RMA shim utilizzando dispositivi clamshell
- Entra in modalità di recupero.
- Premi
CTRL + Dper attivare l'interruttore sviluppatore. - Premi
INVIOper confermare. - Entra di nuovo in modalità di recupero (non è necessario attendere la cancellazione).
- Inserisci e avvia da chiavetta USB con
rma_image.bin.
Come avviare dall'RMA shim su un tablet
- Entra in modalità di recupero.
- Premi
VOL_UP + VOL_DOWNper mostrare il menu di recupero. - Premi
VOL_UPoVOL_DOWNper spostare il cursore su “Confirm Disabling OS Verification” (Conferma disattivazione verifica OS), e premiPOWERper selezionarlo. - Entra di nuovo in modalità di recupero (non è necessario attendere la cancellazione).
- Inserisci e avvia da chiavetta USB con
rma_image.bin.
Navigazione nel menu RMA shim
L'RMA shim ha un menu che consente all'utente di selezionare diverse azioni, che sono documentate nel file README. Se un utente crea un'RMA shim tramite il comando image_tool rma create, lo strumento aggiungerà il flag RMA_AUTORUN=1 al file lab-factory. Questo imposterà le azioni predefinite nel menu.
Comandi RMA aggiuntivi.
Esistono altri comandi image_tool che possono facilitare la verifica e la modifica delle tue RMA shim. Descrizioni dettagliate possono essere trovate utilizzando l'argomento --help per altri comandi. Ad esempio...
$ setup/image_tool rma show --help
Stampa dei componenti del bundle in un'RMA shim
Il comando image_tool rma show può stampare la versione del componente nella tua RMA shim
$ 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 ========================================================================
Lo stesso comando può essere utilizzato anche per le RMA shim universali.
$ 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 ========================================================================
Sostituzione dei componenti del bundle in un'RMA shim
Il comando image_tool rma replace può sostituire i componenti presenti nella tua RMA shim. Ad esempio, puoi sostituire il bundle HWID con uno nuovo:
$ setup/image_tool rma replace -i rma_image.bin --hwid new_hwid_bundle.sh
L'argomento --board sarà necessario se vuoi sostituire qualcosa su una shim universale.
$ setup/image_tool rma replace -i universal.bin
--board soraka --hwid new_hwid_bundle.sh
Questo comando può anche sostituire release_image, test_image, toolkit, factory_shim, firmware, hwid, complete_script e toolkit_config.
Estrazione di un'RMA shim per scheda singola dalla tua shim universale
Il comando image_tool rma extract può essere utilizzato per estrarre un'RMA shim per scheda singola dalla tua shim universale.
$ 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]:
Come modificare la configurazione lab-factory nella tua RMA shim
Il comando image_tool edit_lsb può modificare la configurazione lsb-factory, come il flag RMA_AUTORUN.
$ 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]:
inoltre puoi usare
$ setup/image_tool edit_lsb -i universal.bin --board soraka
Come modificare la configurazione del kit attrezzi in un'RMA shim
Il comando image_tool edit_toolkit_config può modificare la configurazione del kit attrezzi, come l'elenco dei test attivo e la configurazione di cutoff.
$ 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]:
inoltre puoi usare
$ setup/image_tool edit_toolkit_config -i universal.bin --board soraka
Decompressione e ricompressione del kit attrezzi in un'RMA shim
Il comando image_tool payload toolkit può decomprimere e ricomprimere il kit attrezzi di fabbrica in un'RMA shim.
$ 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
o
$ 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
0 Commenti