2 poin oleh GN⁺ 2024-04-30 | 1 komentar | Bagikan ke WhatsApp
  • Setelah memasang NixOS di Terramaster F2-221 dan SSD USB eksternal menjadi hambatan, penulis membuat sendiri backplane untuk memasang SSD boot NVMe di dalam perangkat
  • Backplane F2-221 yang ada sebelumnya berfokus pada SATA dan rangkaian daya, sementara dari analisis foto F5-422 diketahui bahwa Terramaster memperluas bay dengan 2 kontroler SATA ASM1061
  • Pasangan diferensial PCIe dilacak dengan mencocokkan foto F5-422, datasheet ASM1061, dan posisi kapasitor kopling, tetapi sebagian pin tidak pernah terkonfirmasi sepenuhnya dan pinout PCIe2 juga tidak diverifikasi
  • PCB prototipe menghubungkan slot M.2 NVMe langsung ke jalur PCIe x1 Gen 2; BIOS menampilkan Patriot P300 128GB dan hard disk juga berfungsi normal
  • F3 Backplane final disederhanakan agar memakai rail 3,3V secara langsung, dan setelah beberapa minggu boot NVMe serta btrfs scrub berjalan tanpa error, proyek KiCad dipublikasikan di GitHub

Titik awal: menyingkirkan SSD USB eksternal

  • Terramaster F2-221 adalah NAS x86_64 standar berbasis Intel J3355, jadi memasang NixOS alih-alih TOS bawaan pada dasarnya sederhana
  • Karena kedua konektor SATA sudah dipakai untuk hard disk 4TB, penyimpanan sistem operasi harus menggunakan SSD USB eksternal
  • Di sekitar NAS di belakang rak, perlu menyediakan ruang untuk SSD eksternal, dan setiap kali memindahkan barang harus memperhatikan kabel, sehingga muncul kebutuhan untuk penyimpanan internal
  • Motherboard memiliki konektor USB internal untuk bootstrap TOS, tetapi karena USB 2.0, konektor ini tidak cocok untuk SSD boot

Perbandingan backplane F2-221 dan F5-422

  • Motherboard F2-221 memiliki konektor berbentuk PCIe x4 tempat PCB backplane dipasang, tetapi backplane bawaan tidak memiliki IC konversi PCIe-ke-SATA
  • Konektor SATA terhubung langsung ke konektor edge PCIe, dan susunan pin sebenarnya adalah pinout nonstandar, bukan PCIe standar
  • Intel J3355 menyediakan 2 port SATA dan 6 lane PCIe Gen 2, sehingga model 4-bay dan 5-bay Terramaster kemungkinan memperbanyak port SATA menggunakan lane PCIe
  • Dari foto beresolusi tinggi dalam ulasan Terramaster F5-422, teridentifikasi 2 IC ASMedia ASM1061
    • ASM1061 adalah kontroler SATA berbasis PCIe Gen 2 x1 dan menyediakan 2 port SATA
    • Pada F5-422, ASM1061 pertama dipahami terhubung ke port 3 dan 4 pada backplane, sementara ASM1061 kedua terhubung ke port 5
  • Di sisi belakang motherboard F2-221 juga terkonfirmasi bahwa pin-pin yang tampak sebagai sinyal PCIe pada backplane F5-422 memang benar-benar dirutekan

Rekayasa balik sinyal PCIe

  • Jalur PCIe dilacak berdasarkan foto backplane F5-422 dan datasheet ASM1061, tetapi beberapa pasangan diferensial masuk ke layer internal melalui via, sehingga tidak mudah membedakan TX, RX, dan REFCLK
  • Salah satu petunjuk yang dapat dikonfirmasi adalah bahwa salah satu pin konektor PCIe terhubung ke PERST# pada ASM1061
  • Arah sinyal dibedakan dengan memanfaatkan fakta bahwa pada PCIe, secara tradisional kapasitor kopling dipasang pada pasangan diferensial TX
    • Pasangan diferensial yang terhubung ke TX ASM1061 seharusnya memiliki kapasitor kopling di sisi backplane
    • Dari sudut pandang CPU dan motherboard, pasangan diferensial tersebut menjadi RX
    • Pasangan diferensial yang terhubung ke RX ASM1061 diperkirakan dari posisi kapasitor kopling di sisi motherboard
  • REFCLK diperkirakan sebagai pasangan diferensial tersisa yang paling dekat dengan TX dan RX pada tiap antarmuka PCIe x1
  • Foto backplane F5-422 dimuat ke KiCad, trace eksternal diikuti hingga via, dan kemungkinan routing layer internal dibandingkan untuk memverifikasi secara kasar pinout PCIe1
  • Beberapa pin tidak terhubung pada backplane F2-221 bawaan atau masuk ke layer internal sehingga tujuannya tidak dapat dipastikan
  • Pinout PCIe2 tidak diverifikasi

Rekonstruksi rangkaian daya

  • Di salah satu sisi backplane F2-221 tidak ada IC untuk sinyal PCIe, tetapi terdapat banyak rangkaian daya yang didominasi MOSFET, dioda, resistor, dan kapasitor
  • Komponen dan trace diperiksa dari foto close-up, lalu skematik dibuat ulang di KiCad
  • Rangkaian tersebut dipahami sebagai struktur slow-start load switch yang masing-masing ada untuk tiap rail daya port SATA
    • Pada F2-221 terdapat total 4 buah: 2 port SATA × 2 rail daya
    • Pada F5-422 terdapat total 10 buah sesuai konfigurasi 5-bay
  • P4, salah satu pin ground pada konektor SATA, ditarik ke ground saat hard disk terhubung dan digunakan seperti pin enable pada load switch
  • Struktur ini tampaknya bertujuan mengurangi percikan antara konektor dan drive akibat arus masuk awal yang besar saat hard disk di-hot-plug
  • Untuk menghindari menyolder banyak komponen diskret, dipilih IC load switch terintegrasi onsemi NCP45521-L yang memiliki slow starter bawaan

Alasan memilih NVMe alih-alih SSD SATA

  • Awalnya dipertimbangkan opsi menambahkan port SATA dengan ASM1061 lalu menempelkan SSD SATA di dalam casing
  • Konektor M.2 memiliki ruang untuk masuk di antara rel pemasangan backplane, dan meskipun sempit dengan sisa ruang kurang dari 1mm di kedua sisi, pemasangan masih memungkinkan
  • Untuk memakai SSD M.2 SATA, diperlukan kontroler yang mengubah PCIe menjadi SATA
    • Pendekatan seperti F5-422 yang menggunakan ASM1061 memungkinkan
    • Namun IC ASM1061 sulit dibeli satuan, sehingga harus melepas IC tersebut dari kartu PCIe yang berisi ASM1061
  • NVMe sendiri berbasis PCIe, sehingga jalur PCIe dapat dihubungkan langsung ke slot M-key M.2 tanpa kontroler terpisah
  • SSD NVMe biasanya memakai 4 lane PCIe Gen 3 atau lebih tinggi, tetapi desain ini hanya menggunakan 1 lane PCIe Gen 2, sehingga kecepatannya diperkirakan tidak akan lebih cepat dari SATA
  • Meski begitu, karena tidak memerlukan kontroler, routing lebih sederhana, dan pilihan SSD NVMe lebih banyak, NVMe lebih cocok untuk penggunaan ini
  • Untuk SSD aktual, Patriot P300 128GB dibeli secara lokal seharga €14,90
  • Karena belum pasti apakah BIOS bisa boot langsung dari NVMe, skenario terburuk berupa menaruh partisi boot di USB 2.0 stick internal juga dipertimbangkan

Pembuatan dan pengujian PCB prototipe

  • Karena PCB baru harus sesuai dengan struktur pemasangan backplane pada casing, posisi konektor edge PCIe dan lubang sekrup harus akurat
  • Ukuran PCB dan pembatasan aliran udara juga harus dipertimbangkan, sehingga prototipe penting bukan hanya untuk verifikasi elektrik, tetapi juga untuk memastikan kecocokan mekanis
  • PCB lama diukur dengan penggaris dan kaliper; distorsi lensa pada foto tampak depan dikurangi, lalu foto dimuat ke KiCad untuk mencocokkan konektor, lubang sekrup, dan outline
  • Pada prototipe, pin yang belum teridentifikasi dikeluarkan sebagai test point, dan karena rail 3,3V terlambat ditemukan, ditambahkan buck converter untuk mengubah 5V menjadi 3,3V
  • PCB 4-layer dipesan dari JLCPCB dan diterima beberapa minggu kemudian
  • Ini pertama kalinya penulis menyolder paket DFN dan komponennya sangat kecil, tetapi short antara daya dan ground diperiksa, lalu kondisi solder dicek dengan close-up smartphone
  • Saat dipasang ke NAS dan dinyalakan, Patriot P300 128GB muncul di daftar opsi boot BIOS, sehingga boot langsung dari NVMe ternyata bisa dilakukan
  • Jalur CLKREQ yang dikhawatirkan tidak ditemukan, tetapi tampaknya selalu ditarik rendah di suatu tempat pada motherboard, dan REFCLK berfungsi
    • CLKREQ biasanya digunakan SSD untuk meminta clock referensi saat diperlukan
    • Dalam desain ini ASPM tidak bekerja, tetapi karena ini drive boot untuk server yang selalu menyala, hal tersebut tidak dianggap masalah besar
  • Hard disk juga berfungsi normal setelah dihubungkan
  • Karena prototipe yang dibuat untuk pengujian dan debugging langsung berfungsi normal, tujuan pin yang belum teridentifikasi tidak lagi penting

Versi final F3 Backplane

  • Prototipe berfungsi normal, tetapi masih memiliki test point dan posisinya sedikit miring di dalam casing, sehingga versi final V1.0 dibuat ulang
  • Pada versi final, buck converter dihapus dan konektor M.2 dihubungkan langsung ke rail 3,3V konektor PCIe
  • Posisi sedikit disesuaikan untuk mengurangi kemiringan prototipe, test point dihapus, dan logo ditambahkan
  • Namanya ditetapkan sebagai F3 Backplane, bermakna menambahkan satu ke F2
  • PCB final yang dipesan lagi dari JLCPCB juga berfungsi normal seperti prototipe
  • btrfs scrub penuh dijalankan pada hard disk dan tidak terjadi error
  • Sistem dijalankan dari SSD NVMe selama beberapa minggu dan bekerja tanpa hiccup
  • Penyolderan konektor SATA sulit dan hasilnya kasar karena thermal relief tidak ditambahkan pada bidang ground internal, tetapi masalah ini telah diperbaiki di repositori GitHub

Performa dan materi publik

  • Hasil hdparm SSD NVMe adalah sebagai berikut
/dev/nvme0n1:
 Timing cached reads:   4554 MB in  2.00 seconds = 2279.68 MB/sec
 Timing buffered disk reads: 1222 MB in  3.00 seconds = 407.22 MB/sec
  • Kecepatan ini tidak tergolong cepat untuk SSD NVMe, tetapi sesuai perkiraan karena hanya menggunakan 1 lane PCIe Gen 2
  • Performanya cukup untuk drive boot
  • Proyek KiCad dipublikasikan di GitHub

1 komentar

 
GN⁺ 2024-04-30
Komentar Hacker News
  • Sebagai cara menyolder paket DFN, ini nyaris sepenuhnya gila, tapi kelihatannya menarik
    Secara aneh mungkin saja bekerja, tetapi sulit mengharapkan keandalan yang konsisten, dan rasanya hanya cukup untuk proyek sekali pakai

    • Kenyataannya, kedelapannya berhasil semua
      Untungnya pad bawah pada paket DFN mencapai kedua tepi samping, jadi ini memungkinkan; sepertinya cara ini tidak akan berhasil untuk QFN
    • Saya tidak tahu mengapa diperlukan pasta solder yang “terlalu banyak”
      Saya sudah beberapa kali melakukan pekerjaan serupa dengan solder biasa; cukup beri sedikit lebih banyak pada tiap pad, tetapi hindari sampai terjadi short
      Oleskan flux, kalau bisa flux berbasis rosin yang tetap bertahan lama pada tahap pemanasan berikutnya, panaskan seluruh footprint dengan hot air gun, lalu letakkan IC perlahan di atasnya
      Dengan begitu, tidak perlu meniupkan hot air terlalu lama ke IC hanya demi memanaskan semuanya
    • Menurut saya ini metode yang cukup valid
      Jika selalu menaruh beberapa via pada thermal pad dan membiarkan tembaga di sisi sebaliknya terbuka, via tidak tertutup solder mask dan akan menyerap sisa solder
      Untuk pekerjaan SMD dengan anggaran sangat rendah, thermal pad juga bisa dipanaskan dari sisi sebaliknya dengan soldering iron
      Menekan chip juga tidak masalah, tetapi harus hati-hati dengan penyelarasan terhadap pad
      Pada QFN, selain gumpalan solder besar di tepi luar, saya hampir tidak pernah melihat solder bridge
      Paduan solder dan solder mask zaman sekarang cukup baik mencegah bridge, dan solder cenderung kuat menempel hanya pada logam daripada diam di antara bodi paket dan solder mask
    • Jika pad dibuat lebih menonjol keluar dari bawah chip, penyolderan manual menjadi jauh lebih mudah saat diperlukan
  • Saya berharap ada lebih banyak standardisasi untuk build NAS konsumen
    Saya sudah bertahun-tahun bertanya kepada ASUSTOR apakah mereka tidak berniat membuat backplane atau adaptor yang kompatibel dengan Mini ITX
    Akan bagus jika beberapa tahun kemudian hanya backplane yang bisa diganti, atau bisa memasukkan SBC dalam bentuk seperti Pico ITX
    Saya tidak suka bahwa setelah 5 atau 10 tahun, NAS sulit di-upgrade dengan benar
    Jika hanya motherboard yang bisa diganti, banyak NAS 1Gbps dapat dinaikkan ke 2,5Gbps atau 10Gbps, dan sasisnya bisa dipakai lebih lama tanpa dikirim ke TPA

    • Saya berharap Framework masuk ke bidang ini
      Membuang sampai sasis NAS dan backplane padahal hanya bagian komputasinya yang sudah usang adalah pemborosan besar
      Mungkin juga ada sinergi dengan motherboard Laptop 13, dengan TDP kelas laptop dan bahkan kemungkinan ARM
      Namun pasar appliance NAS tampaknya tidak terlalu besar, kira-kira sebatas “prosumer” dan usaha kecil, dan diferensiasinya ada pada software, bukan hardware
      Orang membeli Synology bukan karena hardware-nya, melainkan karena DSM
      Sayang, saya rasa pernah membaca di suatu tempat bahwa Framework tidak punya rencana integrasi vertikal
      Akan bagus jika ada OS yang didukung Framework dan langsung bekerja dengan baik bahkan untuk hal seperti hemat daya atau rasa touchpad
    • Saya berharap FLASHSTOR dari ASUSTOR bukan motherboard terintegrasi + switch PCIe + CPU tersolder + RAM tersolder, melainkan kartu ekspansi NVMe 6/12-bay
      Saya ingin begitu saja memasang benda seperti itu ke PC biasa, tetapi produk yang saya temukan hanya 4 port atau terlalu mahal
    • Beli board Supermicro, buat backplane sendiri atau pakai yang sudah jadi, lalu tambahkan kartu ekspansi sebanyak yang bisa ditangani motherboard
    • Tapi kalau begitu, vendor tidak bisa menjual sasis dan motherboard seharga 100 dolar dengan harga 500 dolar
      Jawabannya sebenarnya sudah Anda berikan sendiri
  • Kedalaman dan usaha yang rela digali orang-orang selalu membuat kagum
    Apalagi untuk pekerjaan seperti modifikasi gitar atau hardware, yang kalau gagal berarti benar-benar kehilangan uang
    Rasanya sebelum langsung terjun ke proyek seperti ini, perlu membangun pengalaman memakai solder atau alat pertukangan di tempat lain dulu
    Aku juga penasaran kenapa pasar kotak kecil yang ramah untuk di-hack agar hardware atau software-nya lebih mudah diutak-atik tidak besar
    Akan menyenangkan kalau ada NAS di kisaran harga konsumen yang sistem operasinya bisa dicopot dan diganti dengan OS atau kernel biasa
    Mungkin aku memang terlalu takut memodifikasi benda fisik sungguhan

    • Aku merakit NAS sendiri dengan total £1000
      Disk fisik 24TB, kapasitas usable 16TB (Raid Z2), menjalankan Ubuntu LTS edisi server, dan container yang dibutuhkan dijalankan di Docker lewat Portainer
      Ini bukan GUI klik-klik yang mudah dipakai siapa saja, dan hal-hal seperti mount SMB harus dibuat sendiri lewat terminal, tetapi cukup mudah untuk dirawat
      Hardware-nya adalah motherboard Asrock Rack C246 WSI Mini ITX, RAM ECC 32GB, Intel i3-9100T, 6 drive IronWolf 4TB NAS, sasis rackmount 2U dengan kedalaman pendek, dan drive boot Samsung 850 Evo 1TB
      Daya idle 23W, cukup rendah, dan naik sampai 65W saat berbeban
      Disk dibuat spin down setelah tidak aktif selama 10 menit, tetapi siklus load/unload tahunannya sekitar 10 ribu kali, jadi masih baik dibanding rating 600 ribu kali
    • Mungkin bukan di kisaran harga konsumen umum, tetapi Supermicro membuat hardware yang cukup bagus untuk NAS
      Kita bisa mengisi drive sendiri dan memasang OS yang diinginkan
      Aku punya mesin dengan konfigurasi 183TB yang menjalankan TrueNAS (ZFS), dan itu sangat bagus
      Pada dasarnya ini kotak x86 standar dengan banyak slot drive, backplane, port SAS/SATA, dan kapasitas controller
      Pasar bekasnya juga cukup aktif
      Namun karena ditujukan untuk orang yang ingin memasang 10 drive atau lebih dalam satu sasis, agak sulit menyebutnya produk konsumen
    • Aku penasaran apakah sekarang ada pilihan yang bagus
      Aku terus terpikir untuk membeli NAS, tetapi tidak ingin memakai OS vendor proprietari yang mungkin memindai dataku karena integrasi cloud yang tidak berguna atau bermusuhan
      Aku juga tidak suka kemungkinan masih adanya backdoor dengan kata sandi yang di-hardcode
    • Ada barebone NAS yang mendukung 2 hard disk 3,5 inci, 2 M.2 NVMe, dan 2 LAN 2.5GbE
      Kualitas BIOS tidak diketahui, dan tidak ada RAM, tetapi bisa diperluas hingga 32GB; OS harus dibawa sendiri
      Model Intel Alder Lake N100 harganya $189: https://aoostar.com/products/aoostar-r1-2bay-nas-intel-n100-...
      Model Ryzen 5700 harganya $299: https://aoostar.com/products/aoostar-r7-2-bay-nas-amd-ryzen-...
    • Kalau bersedia mengutak-atik sendiri, pilihannya cukup banyak
      Ada juga orang yang memakai Raspberry Pi sebagai NAS; lambat, tetapi berfungsi untuk backup lokal murah
      NAS terintegrasi lama seperti DNS-320 juga bisa di-root untuk menjalankan turunan Debian yang relatif baru dan masih mendapat patch keamanan
      Namun spesifikasi CPU dan RAM-nya sangat rendah, jadi harus terbiasa dengan command line
      Bisa juga membeli server HP Proliant lama (sekitar gen8), memasang 4 hard disk 16TB, lalu boot dari drive kelima
  • Aku penasaran dengan bagian “header USB ini hanya USB 2.0, jadi bukan pilihan untuk tujuan ini”
    Aku tidak meragukan proyek yang hebat ini, tetapi ingin tahu kenapa USB 2.0 tidak cocok untuk OS pada NAS
    Selain dibaca saat boot dan sesekali menulis sedikit data, memangnya ada pekerjaan lain?

    • Aku menjalankan NAS dengan disk boot USB 2.0, dan satu-satunya masalah adalah systemd-journald tidak dibuat dengan mempertimbangkan disk lambat
      Kalau menjalankan operasi journalctl pada file log 6 bulan, butuh 1–2 menit karena pola akses file journalctl yang kurang optimal
    • Tidak kutulis di artikel, tetapi mesin ini juga menjalankan pekerjaan server ringan, dan dengan flash drive USB 2.0 rasanya lambat sampai menjengkelkan
      Tentu saja aku tidak akan menyangkal bahwa alasan sebenarnya membuat ini hanyalah karena menyenangkan untuk diutak-atik
  • Sepertinya aku hacker yang buruk
    Aku pernah punya masalah yang sama, harus memasang drive eksternal ke NAS, dan aku hanya menempelkannya di atas NAS dengan Velcro

    • Untuk penggunaan seperti ini, lem tembak paling pas di tangan
  • Ini terlihat jauh lebih keren daripada casing “custom” dari Lego yang kubuat untuk menampung NAS rumahan
    Aku mencolokkan 4 hard disk USB ke sebuah hub, lalu menghubungkan hub itu ke Nvidia Jetson
    Aku ingin membuatnya jadi satu unit, dan Lego tiruan sangat murah sehingga mudah untuk bereksperimen
    Itu juga menyenangkan, tetapi yang ini terlihat jauh lebih profesional, jadi aku agak iri

  • Mengagumkan dan elegan
    Luar biasa bisa sampai sejauh ini hanya dengan tebakan, sedikit trial and error, pengecekan kontinuitas rangkaian, dan cara mengganti IC load switch dengan cukup ringan

    • Aku mengumpulkan sangat banyak informasi dari berbagai forum dan Stack Exchange, dan sebagian harus dengan enggan diterima sebagai fakta
      Meski begitu, akhirnya berhasil
  • Solusi yang benar-benar keren
    Aku memakai model 5-bay dari NAS yang sama, dan memasang TrueNAS Scale di flash drive Samsung USB yang dicolokkan ke USB internal
    Aku memilih produk yang banyak dipakai untuk dashcam Tesla, jadi setidaknya kuanggap ada tingkat ketahanan tertentu
    Sejauh ini puas, tetapi performa CPU masih sangat kurang, jadi berencana upgrade ke yang lebih kuat

    • Performa CPU memang benar-benar kurang
      Aku juga sempat mempertimbangkan mengganti motherboard dengan carrier custom untuk ARM compute module atau Lattepanda mu baru, tetapi sepertinya untuk saat ini aku harus memakai dulu proyek baru yang sudah dibuat dengan susah payah ini
  • Dibuat dengan baik, dan saya suka proyek seperti ini yang membuat orang bisa mengendalikan sendiri perangkat keras mereka
    Patut dipuji sekali lagi karena mendokumentasikannya secara terbuka
    Namun saya penasaran apakah akan muncul masalah aliran udara
    Pada PCB asli dan PCB yang dimodifikasi ada lubang besar di tengah, yang saya duga dimaksudkan untuk mengalirkan udara melewati drive
    Tetapi drive NVMe menutupinya
    Mungkin cukup banyak udara yang bocor di sekitar tepi NVMe sehingga pendinginan drive biasa tetap baik, dan sebagai bonus bisa saja mendapatkan NVMe dengan pendinginan terbaik di dunia
    Meski begitu, ruangnya terlihat sangat mepet

    • Bagian itu juga sempat saya khawatirkan
      Saya tidak terlalu paham aerodinamika, jadi tidak bisa yakin, tetapi saya rasa sebagian udara akan tetap lewat melalui lubang itu
      Penyangga sekrup untuk SSD juga saya geser sampai ke ujung kiri PCB dengan maksud agar lebih banyak udara bisa lewat di sisi kanan
      Setidaknya sejauh ini saya belum merasa performa pendinginannya memburuk
  • Saya tidak akan memakainya secara langsung, tetapi tetap saja ini membuat saya antusias
    Melihat orang menggali sedalam ini, belajar, lalu membagikan apa yang mereka pelajari benar-benar menyenangkan dan memotivasi