Ana içeriğe geç

Genel Bakış

RMA, İade Yetkilendirme (Return Merchandise Authorization) anlamına gelir. Bu, bir cihazda son kullanıcı tarafından çözülemeyen bir sorun oluştuğunda ve kullanıcının cihazı tanı ve onarım için cihazın servis merkezine göndermeyi seçtiği durumdur.

Genellikle, Chrome OS'in doğrulanmış önyükleme ve yazma koruması nedeniyle, bir servis merkezinin Google tarafından imzalanmamış herhangi bir tür tanı aracını veya onarım programını çalıştırması zordur. Bu sorunların üstesinden gelmek için onarım iş ortağının bir RMA shim'e ihtiyacı olacaktır. Bu araç Google tarafından imzalanmıştır ve bir iş ortağının bileşenleri kontrol edip doğrulamak için kendi özel tanı programlarını çalıştırmasına olanak tanır.

Shim imajı, önceden var olan Chrome OS fabrika paketi bileşenlerinin bir kombinasyonu olacak şekilde tasarlanmıştır ve aşağıdakileri içerir:

  • Fabrika kurulum shim'i
  • Sürüm imajı (FSI)
  • Test imajı
  • Fabrika alet takımı
  • HWID paketi
  • Diğer isteğe bağlı bileşenler (aygıt yazılımı, tamamlanma betiği vb.)

Tekli RMA shim'ler ile Evrensel RMA shim'ler

Oldukça faydalı olmalarına rağmen, normal tek kartlı RMA shim'lerin sorunu, anakart modeline özel olmalarıdır. Bu durum, fiziksel USB sürücülerindeki shim imajlarını yönetmeyi zorlaştırabilir.

Bu sorun, bir Evrensel shim oluşturularak çözülebilir. Evrensel bir shim, farklı kartlar için birden fazla RMA shim'i içerebilir, bu da imajları yönetmeyi ve dağıtmayı kolaylaştırır.

Bunun karşılığında, evrensel shim'lerin boyutu oldukça büyük olabilir, çünkü her bir kartın shim'i yaklaşık 3 GB depolama alanı gerektirecektir. Dolayısıyla 3 kart içeren evrensel bir shim'in toplam boyutu 9 - 10 GB olacaktır.

Hangi program gereklidir

image_tool, RMA shim'lerini yönetmek için gereken programdır. Bu program, aşağıdaki komutlar kullanılarak fabrika herkese açık deposundan indirilebilir.

$ git clone https://chromium.googlesource.com/chromiumos/platform/factory
$ cd factory\/

Araç setup\/image_tool içinde bulunacaktır. Kullanıcının en son sürüme sahip olduğundan emin olmak için git deposunu düzenli olarak senkronize etmesi şiddetle tavsiye edilir. Bu işlem aşağıdaki komutla yapılabilir...

$ git pull

Fabrika deposu indirildikten sonra, komutların makinenizde doğru çalıştığından emin olmak için RMA komutlarına yönelik birim testini şu şekilde çalıştırabilirsiniz...

$ py\/tools\/image_tool_rma_unittest.py

Fabrika alet takımındaki RMA test listesini ayarlama

RMA test listesi, fabrika üretim hattında kullanılan test listesinden farklıdır. Örneğin, RMA süreci sırasında bir fabrika sunucusu olmayacaktır. Bu yüzden RMA için farklı bir test listesine ihtiyacımız olacaktır.

Bir test listesi oluşturmak için önerilen işlem, generic_rma.test_list.json dosyasından devralan bir liste oluşturmaktır. Bu, fabrika sunucusunun devre dışı bırakılması ve rma_mode'un etkinleştirilmesi gibi genel RMA ayarlarının yanı sıra, fabrika testlerinin RMAFFT grubuna eklenmesiyle ilgili işlemleri halledecektir.

{
  "inherit": [
    "generic_rma.test_list"
  ],
  "label": "<project> için RMA Test Listesi",
  "definitions": {
    "RMAFFT": {
      "subtests": [
        ...
        ...
      ]
    }
  }
}

Ayrıca aşağıdaki ayarların değiştirilmesi önerilir...

  • Servis merkezlerindeki fabrika testleri, azaltılmış test döngüleri ile çalıştırılır. Örneğin, stres testinin süresini 4 saatten 10 dakikaya düşürün.
  • Servis merkezlerinde kullanılan tüm yedek anakartların SMT testlerini tamamladığını doğrulayın.
  • Servis merkezlerine göndermeden önce, tüm yedek anakartların fabrika sürecinde RW_VPD'ye yazılmış bir kayıt koduna sahip olduğunu doğrulayın.
  • RMA süreci için test öğelerini kesinleştirmek üzere OEM ile görüşün.
  • Herhangi bir GRT (Google Gerekli Test) öğesini değiştirmeyin veya kaldırmayın.
  • Aygıt yazılımı yazma korumasının etkin olduğundan emin olun (constants.phase değeri PVT olarak ayarlanmışsa bu doğru olmalıdır).

Fabrika paketi bileşenlerini RMA shim imajı ile birleştirme

Paket bileşenleri hazır olduktan sonra, bileşenleri tek bir RMA shim imajında birleştirebilirsiniz. RMA shim imajı, image_tool rma create komutu kullanılarak fabrika paketinden oluşturulabilir:

$ 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

Tüm bileşenler uygun paket dizinlerine (release_image\/, test_image\/ vb.) yerleştirilirse komut basitleştirilebilir:

$ setup\/image_tool rma create
      --board BOARD
      --output rma_image.bin

Buna ek olarak, bir RMA shim oluştururken aktif test listesini de belirtebiliriz. Bu sayede fabrika aracındaki active_test_list.json dosyasını değiştirmemize gerek kalmayacaktır.

$ setup\/image_tool rma create
     --board BOARD
     --output rma_image.bin
     --active_test_list rma_main

Evrensel bir RMA shim oluşturma

image_tool rma merge komutunu kullanarak Evrensel bir RMA shim oluşturabiliriz.

$ setup\/image_tool rma merge 
    -i soraka.bin scarlet.bin 
    -o universal.bin

Daha önce oluşturulmuş bir çıktı imajını silmek için -f seçeneğini belirtmeniz gerekecektir:

$ setup\/image_tool rma merge 
    -i soraka.bin scarlet.bin 
    -o universal.bin -f

Evrensel RMA shim'inizi güncelleme

image_tool rma merge komutu, evrensel shim'lerin birleştirilmesini destekler. Herhangi bir yinelenen kart varsa, kullanıcıya hangi kartı kullanmak istediği sorulacaktır. Bu özellik, güncellenmiş tek kartlı RMA shim'i kullanarak evrensel bir shim'deki bir kartı güncellemek için kullanılabilir.

$ setup\/image_tool rma merge 
    -i universal.bin soraka_new.bin 
    -o universal_new.bin
2 girdi imaj dosyası taranıyor...

Soraka kartının birden fazla girdisi var.
========================================================================
(1)
universal.bin kaynağından
board         : soraka
install_shim  : 10323.39.28
release_image : 10575.37.0 (Resmi Yapı) dev-channel soraka
test_image    : 10323.39.24 (Resmi Yapı) dev-channel soraka test
toolkit       : soraka Fabrika Alet Takımı 10323.39.24
firmware      : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid          : Yok
complete      : Yok
toolkit_config: Yok
lsb_factory   : lsb_factory
========================================================================
(2)
soraka_new.bin kaynağından
board         : soraka
install_shim  : 10323.39.31
release_image : 10575.37.0 (Resmi Yapı) dev-channel soraka
test_image    : 10323.39.24 (Resmi Yapı) dev-channel soraka test
toolkit       : soraka Fabrika Alet Takımı 10323.39.24
firmware      : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid          : Yok
complete      : Yok
toolkit_config: Yok
lsb_factory   : lsb_factory
========================================================================
Lütfen bir seçenek belirleyin [1-2]:

RMA shim'i kullanma

ram_image.bin dosyasını bir USB sürücüsüne yazdırın ve geliştirici modu etkin ve cihazınız kurtarma modundayken önyükleyin.

Shim imajı bir USB sürücüsüne nasıl yazdırılır

Shim imajını depolama cihazınıza yazdırmak için dd komutunu kullanın ve \/dev\/sdx kısmını depolama cihazınızın adıyla değiştirin.

$ sudo dd if=rma_image.bin of=\/dev\/sdX bs=8M iflag=fullblock oflag=dsync

Cihazınızda işletim sistemi geliştirme ortamı varsa, chroot içinde ``cross flash`` komutunu kullanabilirsiniz.

$ cros flash usb:\/\/ rma_image.bin

Dizüstü bilgisayar modellerinde RMA shim'den nasıl önyükleme yapılır

  1. Kurtarma moduna girin.
  2. Geliştirici anahtarını açmak için CTRL + D tuşlarına basın.
  3. Onaylamak için ENTER tuşuna basın.
  4. Kurtarma moduna tekrar girin (sıfırlama için beklemenize gerek yoktur).
  5. rma_image.bin içeren USB belleği takın ve önyükleyin.

Bir tablette RMA shim'den nasıl önyükleme yapılır

  1. Kurtarma moduna girin.
  2. Kurtarma menüsünü göstermek için VOL_UP + VOL_DOWN tuşlarına basın.
  3. İmleci "Confirm Disabling OS Verification" (İşletim Sistemi Doğrulamasını Devre Dışı Bırakmayı Onayla) seçeneğine getirmek için VOL_UP veya VOL_DOWN tuşuna basın ve seçmek için POWER tuşuna basın.
  4. Kurtarma moduna tekrar girin (sıfırlama için beklemenize gerek yoktur).
  5. rma_image.bin içeren USB belleği takın ve önyükleyin.

RMA shim menüsünde gezinme

RMA shim, kullanıcının README dosyasında belgelenen farklı eylemleri seçmesine olanak tanıyan bir menüye sahiptir. Bir kullanıcı image_tool rma create komutuyla bir RMA shim oluşturursa, araç lab-factory dosyasına RMA_AUTORUN=1 bayrağını ekleyecektir. Bu, menüdeki varsayılan eylemleri ayarlayacaktır.

Ek RMA komutları

RMA shim'lerinizi doğrulamayı ve değiştirmeyi kolaylaştırabilecek diğer image_tool komutları mevcuttur. Ayrıntılı açıklamalar, diğer komutlar için --help bağımsız değişkeni kullanılarak bulunabilir. Örneğin...

$ setup\/image_tool rma show --help

RMA shim'deki paket bileşenlerini yazdırma

image_tool rma show komutu, RMA shim'inizdeki bileşen sürümünü yazdırabilir

$ setup\/image_tool rma show -i soraka.bin
Bu RMA shim şu kartları içerir: soraka
========================================================================
board         : soraka
install_shim  : 10323.39.31
release_image : 10575.37.0 (Resmi Yapı) dev-channel soraka
test_image    : 10323.39.24 (Resmi Yapı) dev-channel soraka test
toolkit       : soraka Fabrika Alet Takımı 10323.39.24
firmware      : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid          : Yok
complete      : Yok
toolkit_config: cb5b52296cd4fcb0418b6879c0acc32b
lsb_factory   : d2c9d6a7d32ee3b1279c2b0b27244727
========================================================================

Aynı komut Evrensel RMA shim'ler için de kullanılabilir.

$ setup\/image_tool rma show -i universal.bin
Bu RMA shim şu kartları içerir: soraka scarlet
========================================================================
board         : soraka
install_shim  : 10323.39.31
release_image : 10575.37.0 (Resmi Yapı) dev-channel soraka
test_image    : 10323.39.24 (Resmi Yapı) dev-channel soraka test
toolkit       : soraka Fabrika Alet Takımı 10323.39.24
firmware      : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid          : Yok
complete      : Yok
toolkit_config: cb5b52296cd4fcb0418b6879c0acc32b
lsb_factory   : d2c9d6a7d32ee3b1279c2b0b27244727
========================================================================
board         : scarlet
install_shim  : 10211.68.0
release_image : 10575.67.0 (Resmi Yapı) stable-channel scarlet
test_image    : 10211.53.0 (Resmi Yapı) dev-channel scarlet test
toolkit       : scarlet Fabrika Alet Takımı 10211.53.0
firmware      : Google_Scarlet.10388.26.0
hwid          : Yok
complete      : Yok
toolkit_config: Yok
lsb_factory   : c82d4c1f831bf20d7cdc70138fe4ef72
========================================================================

RMA shim'deki paket bileşenlerini değiştirme

image_tool rma replace komutu, RMA shim'inizdeki bileşenleri değiştirebilir. Örneğin, HWID paketini yenisiyle değiştirebilirsiniz:

$ setup\/image_tool rma replace -i rma_image.bin --hwid new_hwid_bundle.sh

Evrensel bir shim üzerinde bir şeyi değiştirmek istiyorsanız --board bağımsız değişkeni gerekecektir.

$ setup\/image_tool rma replace -i universal.bin
    --board soraka --hwid new_hwid_bundle.sh

Bu komut ayrıca release_image, test_image, toolkit, factory_shim, firmware, hwid, complete_script ve toolkit_config bileşenlerini de değiştirebilir.

Evrensel shim'inizden tek kartlı bir RMA shim çıkarma

image_tool rma extract komutu, evrensel shim'inizden tek kartlı bir RMA shim çıkarmak için kullanılabilir.

$ setup\/image_tool rma extract -i universal.bin -o extract.bin
Girdi imaj dosyası taranıyor...

Lütfen çıkarmak için bir kart seçin.
========================================================================
(1)
board         : soraka
install_shim  : 10323.39.31
release_image : 10575.37.0 (Resmi Yapı) dev-channel soraka
test_image    : 10323.39.24 (Resmi Yapı) dev-channel soraka test
toolkit       : soraka Fabrika Alet Takımı 10323.39.24
firmware      : Google_Soraka.10431.32.0;Google_Soraka.10431.48.0
hwid          : Yok
complete      : Yok
toolkit_config: cb5b52296cd4fcb0418b6879c0acc32b
lsb_factory   : d2c9d6a7d32ee3b1279c2b0b27244727
========================================================================
(2)
board         : scarlet
install_shim  : 10211.68.0
release_image : 10575.67.0 (Resmi Yapı) stable-channel scarlet
test_image    : 10211.53.0 (Resmi Yapı) dev-channel scarlet test
toolkit       : scarlet Fabrika Alet Takımı 10211.53.0
firmware      : Google_Scarlet.10388.26.0
hwid          : Yok
complete      : Yok
toolkit_config: Yok
lsb_factory   : c82d4c1f831bf20d7cdc70138fe4ef72
========================================================================
Lütfen bir seçenek belirleyin [1-2]:

RMA shim'inizdeki lab-factory yapılandırmasını düzenleme

image_tool edit_lsb komutu, RMA_AUTORUN bayrağı gibi lsb-factory yapılandırmasını değiştirebilir.

$ setup\/image_tool edit_lsb -i rma_image.bin

Mevcut LSB yapılandırması:
========================================================================
CHROMEOS_AUSERVER=http://...
CHROMEOS_DEVSERVER=http://...
FACTORY_INSTALL=1
HTTP_SERVER_OVERRIDE=true
FACTORY_INSTALL_FROM_USB=1
RMA_AUTORUN=true
========================================================================
(1) Chrome OS Fabrika Sunucusu adresini değiştirin.
(2) Cros yükündeki kesme yapılandırmasını değiştirin (yalnızca eski cihazlar için).
(3) RMA shim'de tamamlama istemini etkinleştirin\/devre dışı bırakın.
(4) RMA shim'de otomatik çalıştırmayı etkinleştirin\/devre dışı bırakın.
(q) Değişiklikleri kaydetmeden çıkın.
(w) Değişiklikleri uygulayın ve çıkın.
Lütfen bir seçenek belirleyin [1-4, q, w]:

ayrıca şunu kullanabilirsiniz

$ setup\/image_tool edit_lsb -i universal.bin --board soraka

Bir RMA shim'de alet takımı yapılandırmasını düzenleme

image_tool edit_toolkit_config komutu, aktif test listesi ve kesme yapılandırması gibi alet takımı yapılandırmasını değiştirebilir.

$ setup\/image_tool edit_toolkit_config -i rma_image.bin

Alet takımı yapılandırması:
========================================================================
{
  "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) Aktif test listesini değiştirin.
(2) Test listesi sabitlerini değiştirin.
(3) Kesme yapılandırmasını değiştirin.
(q) Değişiklikleri kaydetmeden çıkın.
(w) Değişiklikleri uygulayın ve çıkın.
Lütfen bir seçenek belirleyin [1-3, q, w]:

ayrıca şunu kullanabilirsiniz

$ setup\/image_tool edit_toolkit_config -i universal.bin --board soraka

RMA shim'deki alet takımını paketinden çıkarma ve yeniden paketleme

image_tool payload toolkit komutu, RMA shim'deki fabrika alet takımını paketinden çıkarabilir ve yeniden paketleyebilir.

$ setup\/image_tool payload toolkit -i rma_image.bin --unpack toolkit_path
(toolkit_path\/ içindeki bazı dosyaları düzenleyin...)
$ setup\/image_tool payload toolkit -i rma_image.bin --repack toolkit_path

veya

$ setup\/image_tool payload toolkit 
    -i universal.bin --board soraka --unpack toolkit_path
(toolkit_path\/ içindeki bazı dosyaları düzenleyin...)
$ setup\/image_tool payload toolkit 
    -i universal.bin --board soraka --repack toolkit_path

Ek Bilgiler

Jacob Mehnert

Üyelik tarihi: 10/18/21

49.816 İtibar

52 adet Kılavuz yazıldı

Ekip

iFanatics iFanatics üyesi

Community

69 Üyeler

1.151 adet Kılavuz yazıldı

0 Yorum

Yorum Ekle

İstatistikleri Görüntüle:

Son 24 Saat: 14

Son 7 gün: 104

Son 30 gün: 393

Her zaman: 19,430