code: func (w *ledgerDriver) Open(device io.ReadWriter, passphrase string) error {
  	w.device, w.failure = device, nil
  
  	_, err := w.ledgerDerive(accounts.DefaultBaseDerivationPath)
  	if err != nil {
  		// Ethereum app is not running or in browser mode, nothing more to do, return
  		if err == errLedgerReplyInvalidHeader {
  			w.browser = true
  		}
  		return nil
  	}
  	// Try to resolve the Ethereum app's version, will fail prior to v1.0.2
  	if w.version, err = w.ledgerVersion(); err != nil {
  		w.version = [3]byte{1, 0, 0} // Assume worst case, can't verify if v1.0.0 or v1.0.1
  	}
  	return nil
  }
docs: // Open implements usbwallet.driver, attempting to initialize the connection to the
  // Ledger hardware wallet. The Ledger does not require a user passphrase, so that
  // parameter is silently discarded.