teratail header banner
teratail header banner
質問するログイン新規登録
OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Q&A

解決済

2回答

1684閲覧

UEFIでマウス

carbon

総合スコア33

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

0グッド

0クリップ

投稿2016/05/03 07:33

0

0

UEFIでOSもどきを作り始めたのですが、グラフィックモードなどが使えるようになったので、マウスを使えたら使いたいと思い始めました。
ASUSなどのUEFIのセットアップ画面ではマウスが使えるので使えるのかなと思ったのですが、仕様書を見てもマウスの項目が見つけられず困っております。

UEFIアプリケーションからはマウスを利用する方法は存在するのでしょうか?
存在するのであれば使い方を教えていただけると幸いです。

UEFIのライブラリはEDK2で、ターゲットとなるアーキテクチャはx64です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こちらです
https://uefi.org/specs/UEFI/2.10/12_Protocols_Console_Support.html#simple-pointer-protocol
なお、ハンドルベースのプロトコルであるため実装義務はなく、仮想マシンでは動作しない場合が多いです。
QEMUであれば、EDK2のOvmfPkg内のOvmfPkgx64.dscとOvmfPkgX64.fdfを編集してビルドしなおしたOVMFを使用し、QEMUに複数のオプションをつければ使えます
ovmfpkgx64.fdfには

INF MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf INF MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf INF MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf INF MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf INF MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf **INF MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf** INF MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf

ovmfpkgx64.dscには

MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.inf MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf MdeModulePkg/Bus/Pci/XhciDxe/XhciDxe.inf MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf **MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf** MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf

と**~**内を書き加えビルドしてください

qemu-system-x86_64 --monitor stdio -usb -device usb-mouse -device usb-kbd -bios (Ovmf.fdのパス) -hda (ディスク)

と実行すれば、ちゃんとマウスが仮想マシンでも使えます

投稿2024/08/17 08:25

knt.t32

総合スコア25

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

carbon

2024/08/18 00:57

ありがとうございます! 詳細に説明していただいて助かります!
guest

0

UEFIはよく分からないのですが、僕が本を見ながらOSを作った時は、マウスを使用するためにはout命令でマウスの回路に有効化命令を送らないとマウスは情報を送らない、と学んだので、まずUEFIでマウスの有効化ができているのか、またはできるのか、ということが初めの一歩かもしれません。
とりあえずHello, Worldプログラムを検索して見た限りかなりAPIに頼っているので、UEFIのAPIにマウスを使うためのものがなければ、簡単にはできないかもしれません。
また、もしそのようなAPIがあったとしても、マウスを使うにはかなりの描画処理が要ると思われます。
役に立てず申し訳ありません。

投稿2016/06/27 13:30

sk_sat

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問