はじめに 前回、Windows 10とMacにてRaspberry Pi OSをQEMUエミュレータで動かしましたが、versatilepbマシンでありCPUのアーキテクチャがarmv6(Raspberry Pi初代やRaspberry Pi Zero系統)が対象でした。 Windows10上にRaspberry Pi OS(RaspbianBuster)をQEMUエミュレーターで動かす(versatilepbマシン) Mac上にRaspberry Pi OS(RaspbianBuster)をQEMUエミュレーターで動かす(versatilepbマシン) Visual Studio Codeがサポートしているのは、CPUのアーキテクチャがarmv7lのRaspberry Pi 2系統とRaspberry Pi 3系統なので、Raspi2マシンとRaspi3マシンでなんとかQEMUエミュレー
Network Basics There are two parts to networking within QEMU: the virtual network device that is provided to the guest (e.g. a PCI network card). the network backend that interacts with the emulated NIC (e.g. puts packets onto the host's network). There are a range of options for each part. By default QEMU will create a SLiRP user network backend and an appropriate virtual network device for the g
Introduction The Kernel Virtual Machine, or KVM, is a full virtualization solution for Linux on x86 (64-bit included) and ARM hardware containing virtualization extensions (Intel VT or AMD-V). It consists of a loadable kernel module, kvm.ko, which provides the core virtualization infrastructure and a processor specific module, kvm-intel.ko or kvm-amd.ko. In Debian, Xen is an alternative to KVM. (V
最後に「次回は解像度の取得・設定方法の調査と実装」をすると書いたんですが、ちょっと時間がなかったので今回は取得方法の実装までです。 ビデオドライバーでやりたいこと解像度とかFrameBufferの取得方法の話を書いてますけど、最終的に作りたいのはビデオドライバです。なので、一度作ろうと思ってるビデオドライバについて具体的に説明します。 まず、前回やったようにPCIeデバイスの探索をして、ビデオカードが見つかると、ベンダーIDを確認して、それに対応するドライバーを連れてきます。 ここでドライバーはGPUとMMIO(Memory Mapped I/O)を通じて情報をやり取りし、解像度やらビット深度やらの設定をします。今回はこれの基礎作りです。 そして、その先にはスペシャルファイルを使ってユーザー空間からフレームバッファーに書き込めるようにして、Xorgのようなグラフィックシステムで制御できるよ
本書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.01はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 本書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要がありま
vncを使ってVMに接続したりしてたんですが、virshでconsoleってやった方がいいじゃん、って。 革ジャン着たジャン似合わないじゃん。 以下の手順は、インストール時にはVNCとかvirt-managerからの画面(これもVNCか)でインストールした場合のubuntuの話。最初からコンソールでインストールすれば問題ないっぽい。シリアルコンソールでLinuxをインストールしたことってないなぁ・・・。今度試してみよう。 手順 KVMでシリアルコンソールの設定を有効にする。virt-managerでVMを作っとけばデフォルトでは有効になってたはず。 ubuntuにログイン /etc/init/ttyS0.confを作成し、以下を追加 [text] # ttyS0 – getty # # This service maintains a getty on ttyS0 from the poi
ここ一ヶ月ほどQEMUのコードとお戯れしていたのですが、 qemuのソースコードもうすぐ読みきりそうなのでどこかにまとめたいんだけど、qemu internalみたいな記事ってどれぐらい需要あるの— 前代未聞 (@RKX1209) 2015, 11月 9 と言ってみた所なんとなく需要がありそうだったので書きました。 本記事ではQEMUの内部実装を追い、具体的な仕組みを見ていきます。もし研究や仕事などでqemuを読む必要がある方や、これから趣味で読んでみようという方はぜひ参考にしてください。 (QEMU internalsというよりはQEMUコードリーディングの方が適切かもしれませんね....) さてここで扱うQEMUはqemu2.4.0でゲストはx86,ホストはx64であると仮定します。 両方共x86系となるとDBTの意味はあまり無く、KVM使ってどうぞという話になるのですが、あくまでコー
This section describes the XML format used to represent domains, there are variations on the format based on the kind of domains run and the options used to launch them. For hypervisor specific details consult the driver docs Element and attribute overview¶ The root element required for all virtual machines is named domain. It has two attributes, the type specifies the hypervisor used for running
Introduction This page talks about VT-d emulation (guest vIOMMU) in QEMU, and all the related stuffs. Please see the References section for detailed information related to the technology. General Usage The guest vIOMMU is a general device in QEMU. Currently only Q35 platform supports guest vIOMMU. Here is a simplest example to boot a Q35 machine with an e1000 card and a guest vIOMMU: qemu-system-x
qemu-system-x86-64 ならびに qemu-system-i386 でゲストOSをセキュアブートする手順です。 QEMUでUEFI起動するときに使うBIOS ROMであるOVMFで、セキュアブート対応になっているものをどこかから入手する。手っ取り早い方法は Fedora 33 などから抜いてくることで、例えば https://github.com/emojifreak/qemu-arm-image-builder/tree/main/OVMF-Fedora にある。Debian/Ubuntuのパッケージはダメダメで以下の手順では動かないからお勧めしない。自分でOVMFをコンパイルしなおす場合は セキュアブートできるOVMFをソースからコンパイルする を参照。 上記のgithubフォルダにあるOVMF_VARS.secboot.fdはゲストごとにコピーを取って使う前提なのでコピ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く