
USB-Serial ConverterでGRUBとやり取りしたいです。
grubのcliでは、次のコマンドリストを使用してラップトップでこれを実行できます。
insmod nativedisk #to not loose drive information after insmod *hci
nativedisk ahci
insmod ehci
insmod ohci
insmod uhci
insmod usbserial_ftdi # I use an ftdi usb to serial adapter
terminal_output --append serial_usb0
terminal_input --append serial_usb0
私のデスクトップコンピュータでは、同じプロセスは機能しません。問題は、グルーブを実行した後にドライブ情報を失うことです。インスモデシ、これは次のことを意味します。エルエスそれ以降はディスクが返されないため、後続のすべてのコマンドが失敗し、何も実行できず、再起動する必要があります。
この問題は、上記のように私のSATAベースのラップトップで次のように解決されました。ローカルディスクahci、このコマンドはデスクトップコンピュータでは機能しません。NVMe(pcie)ドライブとアーチモジュールSATAドライバー。
NativediskのGRUBのドキュメントページには利用可能なパラメータはリストされていません。ソースコードネイティブディスクのいくつかのパラメータを見ましたが、残念ながらこの方法で問題は解決されませんでした。
私の質問は、さまざまな* hciモジュールを接続するとGRUBがドライブ情報を失うのはなぜですか?この問題をどのように防止/解決できますか?
答え1
それ以外の場合、nativedisk
GRUBはファームウェアのディスクリストを使用します。 NVMeブートをサポートするシステムにはUEFIファームウェアがある可能性が高いです。これはUSBのサポートが組み込まれていることを意味します。
GRUBがUSBドライバをロードすると、ファームウェアはUSBコントロールを引き継ぎ、ファームウェアはこれによってストレージデバイスのリストが無効になる可能性があることを認識するのに十分スマートです。したがって、これは解決するのが難しいファームウェア実装機能です。
map -r
UEFIが「現在アクティブなドライバを使用してストレージデバイスを再検索する」という概念を理解していることを示唆するUEFIシェルへのコマンドがありますが、明らかにGRUBは現在USBバスアクセスを取得した後にそのコマンドを呼び出しません。 GRUBのUEFIバージョンを使用している場合は、UEFIサービスコールを追加してサポートを追加するのが比較的簡単ですが、クラシックバージョンを使用している場合は、i386-pc
適切なBIOS呼び出しがあるかどうかはわかりません。
ehci
実際にUSBドライバが動作していることに驚きました。 NVMeブートをサポートするシステムにはXHCI USBコントローラがあると予想しました。