G-RAID Studio
G-Technology G-RAID Studio Thunderbolt 2
Prijungimas Linux'e
Į /etc/default/grub GRUB_CMDLINE_LINUX_DEFAULT arba /etc/kernel/cmdline rekia pridėti
iommu=pt
Pririšam thunderbolt'ą:
boltctl list boltctl enroll <UUID>
Pvz.:
boltctl enroll 00000000-0000-0018-0004-d4032e54e050
Žiūrim ar atsiranda devaisas:
dmesg -w
Jeigu viskas ok ir buvo pakonfigytas ant JBOD, turėtų atsirasti diskai:
lsblk
Jeigu neatsirado toliau žiūrime dmesg kodėl..
Papildoma info
c9:00.0 SATA controller: Marvell Technology Group Ltd. 88SE9230 PCIe 2.0 x2 4-port SATA 6 Gb/s RAID Controller (rev 11)
Controlleris taip pat exposina management console, kurios dar nepriveikiau...
lsscsi -g [2:0:0:0] process Marvell Console 1.01 - /dev/sg2 apt install sg3-utils sg_inq /dev/sg2
Standarinės siunčiamos komandos grąžina statusą failed. Reikia tolimesnio tyrimo.
Reverse Engineered info
Standartinis softas veikia kaip web aplikacija bet turi įrankį, kuris yra pacompilintas ant i386 ir tikrai ant naujų macOS neveiks, nebent turint seną macOS relyzą su mac'u kuriame yra TB2 portai galima pajungti ir išsiaškinti. Tas įrankis naudojamas backende atlikti visus juodus darbus, kuriuos vartotojas nurodo per tą web ui:
G-SPEED Studio Software Utility.app/Contents/Resources/XMLBase/cli_exeMod: Mach-O executable i386
Atvirkštine inžinerija išsiaiškinta šios detalės:
G-SPEED Studio CLI Notes
This document explains how to use the bundled Promise/G-SPEED command line utility to:
* identify physical disks * list physical disks * map UI disk labels to CLI disk IDs * change disk mode between unconfig and passthru * perform a few related physical-drive operations
It is based on the software bundle in this repository, especially:
* G-SPEED Studio Software Utility.app/Contents/Resources/XMLBase/cli_exeMod * the web UI code that calls physical-drive APIs
Important terms
* PD ID: Physical Drive ID used by backend/API/CLI operations. * pdi_FlatId: Internal drive ID field used by the web UI data model. * PassThru: What this software uses as the JBOD-like mode for a drive. * Unconfigured: A drive that is not currently passed through and not in an array.
Important warning about numbering
There are two different representations in this software:
* Internal/backend ID: pdi_FlatId * Human-facing detail label: PD <id+1>
That means:
* if the UI detail page says PD 1, the backend ID may actually be 0 * if the physical drive list shows a raw numeric ID column, that raw numeric value is the one to trust for backend and CLI work
The web UI code confirms this:
* the physical drive list uses item.pdi_FlatId * the detail view displays PD plus getId()+1
Utility location
Bundled CLI binary:
"/Users/devnull/Projects/G-Drive/G-SPEED Studio Software Utility.app/Contents/Resources/XMLBase/cli_exeMod"
Short shell variable for convenience:
CLI="/Users/devnull/Projects/G-Drive/G-SPEED Studio Software Utility.app/Contents/Resources/XMLBase/cli_exeMod"
Platform note
The bundled cli_exeMod in this repository is a Mach-O i386 binary. On an arm64 Mac it may not run directly unless the proper compatibility layer is available. The commands below document the intended usage from the bundled help text and the surrounding application code.
How the software changes JBOD mode
The web UI does not call a special jbod command.
It changes a physical drive's configuration state through the backend method:
* setPhyDrvSettings
When switching a drive into JBOD-like mode, it sets:
* pdsp_Flags = "PassThru"
The equivalent CLI operation is:
$CLI phydrv -a mod -p <PD_ID> -s "config=passthru"
To switch back:
$CLI phydrv -a mod -p <PD_ID> -s "config=unconfig"
Basic discovery workflow
Recommended order:
- List physical drives. - Identify the correct PD ID. - Confirm whether the drive is already Unconfigured or PassThru. - Change the mode only for the target drive. - Re-list drives to verify the new state.
List physical drives
Basic listing:
$CLI phydrv
Explicit list action:
$CLI phydrv -a list
Verbose listing:
$CLI phydrv -v
List all SCSI devices instead of only disks:
$CLI phydrv -a list -l all
What to look for in output:
* Physical Drive ID * model * slot/location * current status * array membership * current configuration status such as Unconfigured or PassThru
Identify the correct PD ID
From the web UI
Use the Physical Drives page.
The first numeric ID column comes from the raw internal field:
* pdi_FlatId
That is the best candidate for CLI/API work.
Do not rely only on a detail screen label like PD 1, because the detail screen may display id+1 for humans.
From CLI output
Use:
$CLI phydrv -v
The bundled help text indicates the output includes physical drive information and refers to Physical Drive Id.
Once you have the printed Physical Drive ID, use that exact number with -p.
Locate a drive physically
Blink the LED for one disk:
$CLI phydrv -a locate -p <PD_ID>
Example from the bundled help:
$CLI phydrv -a locate -p 9
Use this before changing mode if you need to confirm the exact tray/slot.
Change a drive to JBOD-like mode
In this software, JBOD-like mode means PassThru.
Command:
$CLI phydrv -a mod -p <PD_ID> -s "config=passthru"
Example:
$CLI phydrv -a mod -p 9 -s "config=passthru"
Expected use:
* drive should currently be Unconfigured * drive should not be part of an active array
After changing mode, verify:
$CLI phydrv -v
Change a drive back from PassThru
To return a passed-through drive to Unconfigured:
$CLI phydrv -a mod -p <PD_ID> -s "config=unconfig"
Example:
$CLI phydrv -a mod -p 9 -s "config=unconfig"
This is also what the web UI does when converting a PassThru disk back to Unconfigured.
Change drive alias
The CLI help says alias can only be set on a configured drive.
Example:
$CLI phydrv -a mod -p <PD_ID> -s "alias=MyDisk"
Do not assume alias changes are allowed in Unconfigured or PassThru state.
Other physical-drive operations
Force a drive offline:
$CLI phydrv -a offline -p <PD_ID>
Force a drive online:
$CLI phydrv -a online -p <PD_ID>
Clear PFA:
$CLI phydrv -a clear -p <PD_ID> -t pfa
Clear stale config:
$CLI phydrv -a clear -p <PD_ID> -t staleconfig
These are riskier than listing/locating and should be used only when you are sure about the drive state.
Global SATA/SAS drive settings
The CLI also supports global settings on SATA/SAS drives through phydrv -a mod, for example:
$CLI phydrv -a mod -s "writecache=enable,rlacache=enable"
Drive-type-specific scope:
* -d sata * -d sas * -d all
Examples:
$CLI phydrv -a mod -d sata -s "writecache=enable"
$CLI phydrv -a mod -d sas -s "readcache=enable,multipath=enable"
These are global settings for drives of that type, not a single-disk mode switch.
Arrays and PD IDs
The CLI help for array creation uses PD IDs directly:
$CLI array -a add -p 1,3,5~9 -l "raid=5,capacity=50gb,stripe=256kb"
This matters because it confirms that:
* the same PD ID namespace is used across physical-drive and array commands * the IDs you discover in phydrv are the IDs you would use when creating arrays
Safe operating procedure
Before changing a disk to PassThru:
- List all drives with phydrv -v. - Record the target drive's PD ID, slot, model, and current config state. - If needed, run phydrv -a locate -p <PD_ID> to confirm the tray. - Ensure the drive is not part of an active array you care about. - Run phydrv -a mod -p <PD_ID> -s "config=passthru". - Re-run phydrv -v and confirm the new state.
Common examples
List drives:
$CLI phydrv -v
Locate drive 4:
$CLI phydrv -a locate -p 4
Convert drive 4 to PassThru:
$CLI phydrv -a mod -p 4 -s "config=passthru"
Convert drive 4 back to Unconfigured:
$CLI phydrv -a mod -p 4 -s "config=unconfig"
Clear stale configuration on drive 4:
$CLI phydrv -a clear -p 4 -t staleconfig
What the web app code confirms
Relevant behavior found in the application code:
* Physical drive IDs come from pdi_FlatId. * UI detail display uses PD <id+1>. * The physical-drive settings panel offers Unconfigured and PassThru. * Saving those settings issues backend setPhyDrvSettings. * Advanced configuration code also toggles drives through setPhyDrvSettings.
Limitations of this note
* This document is based on bundled help text and code inspection. * The cli_exeMod binary in this repository was not executed successfully on the current arm64 host during this review. * If you run this on the original supported platform, verify syntax with:
$CLI help phydrv
or:
$CLI phydrv -h
