フリーで利用できるCPUエミュレータ。 「qemu-img create」コマンドを利用して、VMware用の仮想ディスクを作成し、VMware Player上でゲストOSを動かすこともできる。
はじめに MACHINE="qemuarm64"などでイメージを作成すると、実機を用意しなくてもYoctoProjectを試せるので便利。 ただ、複数のパーティションを使用したり、ストレージを追加したい場合にぱっとやり方がわからない。 手順を調査したのでメモ。 今回は、ディスクイメージファイルを作成しqemuにデバイスを追加する方法とwicを使用してパーティションを追加する方法を記す。 環境構築 ソース取得 $ git clone git://git.yoctoproject.org/poky.git -b kirkstone 環境変数設定 source poky/oe-init-build-…
1. Qemuを生で起動 1.1 libvirtからの起動を模擬したい場合 マスターキー Qemuモニター 仮想ネットワーク 1.2 とにかくQemuが使いたい場合 2. Qemuモニター 2.1 HMP (readline) 2.2 QMP (control) 2.3 libvirt配下のQemuに対するモニターコマンド 3. リモートからのvirt-manager 3.1 リモートでvirt-managerを動かす 3.2 リモートvirt-managerを使って、音声を聞く 4. ディスクイメージ操作 4.1 guestfish 4.2 LIO/tcmu-runner 5. その他小ネタ…
目標 筆者の実機(M1 Mac, AArch64)でx86_64のDockerコンテナを立ち上げ、その上でQEMUを用いてリモートデバッグをする 手順 x86_64なDockerコンテナを起動し、コンテナに入る docker run -it --platform linux/amd64 ubuntu:latest qemu-user-static gdb及びコンパイラ含め必要なツールをインストールする apt update apt install qemu-user-static gdb gcc vim プログラムを書いてデバッグ情報付きでコンパイルする(a.outはx86_64のバイナリ) …
1. 細々とした予備知識 1.1 Qemuのデバイスエミュレーション 1.2 QemuのCPUエミュレーション 1.3 Qemuのスレッド 2. 追加のI/OスレッドとAioContext 2.1 追加のI/Oスレッド 2.2 AioContext 2.3 Big Qemu Lock 3. AioContextの各種イベント処理 3.1 AioHandler 3.2 event_notifier 3.3 タイマー、Bottom half 3.5 スレッドプール 執筆者 : 箕浦 真 こういう 仕事をしていると、ときどきQemuの仕組みや内部動作をお客様に説明する必要があることがあるが、そういう…
はじめに QEMUはとても便利だが、Ctrl+aがデフォルトで制御キーに割り当てられているため、 シェル上でカーソルを先頭に移動したい時にいつもイラッとする。 QEMU自体の制御キーの変更の仕方は下記に解説があった。 qemuの制御キーバインド変更 runqemuでの制御キーの変更 runqemu実行時にqemuparamsで-echrを指定する。上記リンクの様にCtrl+tに割り当てる場合は下記のようにする。 $ runqemu qemuparams="-echr 0x14" しかしrunqemuする時に毎回書くのは面倒くさい 解決方法 local.confに下記を追記する。 QB_OPT_…
お伝えしたいこと LinuxをGNS3上で動作させる手順を紹介します。 GNS3上でQEMUベースのLinux VMを登録する手順を扱います。 Linux上でGNS3 Serverを動作させる構成において役に立つと思います。 本記事は、ホストマシンがGNS3とKVM環境をセットアップ済みのLinuxであることを前提にしています。 KVMのセットアップ手順については、KVMの初期設定、及びvirsh, virt-installによるVM作成を参照してください。 お伝えしたいこと Linuxの準備 (参考) Linux VMの作成手順 (任意) シリアルコンソールへの対応 (参考) シリアルコンソ…
参考記事 www.mztn.org 手順 qemu のインストール Ubuntu Server のイメージファイルのダウンロード qemu を使って Kernel (vmlinuz)、initram (initrd.img) を取り出す qemu を使って起動 qemu-system-aarch64 -m 1024 -cpu cortex-a57 -nographic -machine virt \ -kernel vmlinuz-5.4.0-91-generic \ -append 'root=/dev/vda1 rw rootwait mem=1024M console=ttyS0 \ c…
引用元:linux-kvm.org 前の記事 本記事では、KVMの初期設定が完了していることを前提としています。 初期設定手順に興味のある方は、以下の記事もご参照ください。 endy-tech.hatenablog.jp virt-manager、Cockpitのセットアップについては、以下の記事をご参照ください。 endy-tech.hatenablog.jp endy-tech.hatenablog.jp お伝えしたいこと KVMの基本操作をケース別に紹介します。 基本はCLIの手順紹介がメインです。 virt-managerとCockpitのスクリーンショットも載せていますが、今後画面の…
2021 Jun. 12. 出典 Installing KVM/QEMU/virt-manager on Manjaro Linux(Arch Linux) | Boseji’s Lab 参考 Install KVM on Arch Linux CPUの仮想化可否確認 $ LC_ALL=C lscpu | grep Virtualization Virtualization: AMD-V カーネル設定の確認 $ zgrep CONFIG_KVM /proc/config.gz CONFIG_KVM_GUEST=y # CONFIG_KVM_DEBUG_FS is not set CONFIG_…
用意するもの 環境構築方法 動かす ゼロからのOS自作入門で、WLS を使った環境構築など紹介されているが、 Windows 10 Home のため WSL は使えなかった... そのため、Virtualbox 上の ubuntu 18.04 で Qemu を動かし、 作った自作OSを動かす方法について紹介 ※よくよく調べたらあるみたいだが、まぁいいや… 用意するもの VirtualBox Ubuntu 18.04 の ISO 環境構築方法 Qemu が動くまでの構築方法を記載 以下のサイトを参考に、Virtualbox 上に ubutnu 18.04 を動かす qiita.com Qemu …
Rancher Desktop 1.13.1がリリースされていたので、早速触ってみました。 このブログでは久々に取り上げましたが、Rancher Desktopは直近のリリースで様々なアップデートが行われました。 私が気になった機能をピックアップすると、こんな感じです。 1.13 WebAssembly/Wasm support (experimental) Support for kind (macOS and Linux only) Support for QEMU on M3 machines (macOS) 1.12 Windows WSL InstallationモードにWSLINS…
何気なしにLXD環境があるOSをアップデートをして、再起動をしたら、いつまで経ってもLXDが起動しなくなってしまいました。しかしこれはOSC( https://ospn.jp )のWebサーバーなので、呑気なことも言ってられず、なんとかすぐに治す必要があります(何気なしにアップデートするな、それはそう)。結果としては20分ほどで解決はできましたが、今日のヒヤリハットでした……。 現在の環境 LXDホストはUbuntu Server 20.04上にsnapで導入しており、CentOS 7 x 1台、Ubuntu Server 20.04 x 2台の計3VMが動いています。トラックはlatest/…
Nutanix Volumes の Volume Group(VG)を仮想マシンに直接接続し、SCSI-3 Persistent Reservation(SCSI-3 PR)の動作を確認してみます。 今回の内容です。 1. Nutanix Volumes VG の SCSI-3 PR サポート 2. 今回の環境 2-1. Prism Element の様子 2-2. 仮想マシン / ゲスト OS の様子(vm01) 2-3. 仮想マシン / ゲスト OS の様子(vm02) 3. SCSI-3 PR の動作確認 3-1. 初期状態の様子 3-2. Reservation Key の登録 3-3…
取締役CTOの小竹(aka tkmru)です。 ディスアセンブルを妨害するアンチディスアセンブルという耐タンパ性を高めるための技術があります。 本記事では、32ビットのARM環境(以下、ARM32)で有効なアンチディスアセンブルのテクニックを紹介します。 静的解析を妨害するアンチディスアセンブル リバースエンジニアリングの方法の1つに、バイナリをディスアセンブル(逆アセンブル)した結果を読み解く静的解析があります。 ディスアセンブルというのは、バイナリを機械語からアセンブリ言語に変換することです。 静的解析では、アセンブリ言語の命令を読み解くことで、プログラムの挙動を明らかにします。 アンチデ…
こんにちは、永和システムマネジメントの内角低め担当、はたけやま( @htkymtks )です。 みなさん、RISC-Vをご存知ですか?RISC-VはCPUの命令セットアーキテクチャ(ISA)のひとつで、使用料のかからないオープンソースライセンスで提供されていることや、命令セットの美しさから注目を集めています。私も以前にRubyでRISC-Vシミュレータを作ったりしてました。 今回はRISC-Vを用いて、OSもライブラリも使用しないベアメタル環境で動作するプログラムを作成してみようと思います。 インストール まずはRISC-Vのクロスコンパイラとエミュレータをインストールします。クロスコンパイラ…
サイボウズ・ラボの中谷です。 今回は2024年3月29日にサイボウズ東京オフィスで開催された第13期サイボウズ・ラボユース成果発表会の模様を紹介します。
昼起床。昼食はうどん。 昨日、mirakcのビルドが出来たことで、mirakcを動かすのに必要なファイルのうち1つだけは動作中のMirakurunから取得する必要があるので、何とか楽に出来ないかと思い、Debian標準パッケージのNode.jsやDockerで動かせないか、Node.jsやDockerのアンインストールの方法を確認したくなるも、手元にDebianを簡単に動かせるPCが無いので、ThinkPad X201sにVMware入れてやってみようとインストール。 しかし、「このプロセッサは XSAVE をサポートしません。この仮想マシンはパワーオンできません。」と出てVMwareでDeb…
仮想化がサポートされていることを確認 ハードウェアがKVM仮想化をサポートされていることを確認 $ lscpu | grep Virtualization Virtualization: VT-x # 👈 VT-x or AMD-V 出力が空白の場合、BIOS/UEFIで無効になっている可能性があります。 カーネルにKVMモジュールが含まれていることを確認 yまたはmに設定されていれば利用できます。 $ zgrep CONFIG_KVM /boot/config-$(uname -r) CONFIG_KVM_GUEST=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_…
Proxmox VEには、VMのテンプレート化とクローン機能があり、さらにCloud-Initを使って初期設定込みで簡単にVMをプロビジョニングできる機能がある。 もうすぐFedora40やUbuntu 24.04がリリースされそうなので、その時にサラサラとテンプレート作成できるように、この機能を使う準備についておさらい。 といっても、ドキュメントの通り順番にコマンド実行していけば作成できる。 pve.proxmox.com ちなみにここではUbuntuの情報はあふれてるので、ここではFedora 40 betaでお試し。 (Ubuntuの場合も参考程度に記載してる) テンプレートの作成 ベー…
やりたいこと 以下の環境で「ゼロからのOS自作入門」の学習を始めたい。 Windows11 WSL2 + qemu kali linux Xサーバは使わない やったこと kaliのインストール WSL2でkali linuxを用意する。WSL版は一部のツールしか入っていないため、フルインストールを行った。 ※これが以降の作業に影響するかはわからないので飛ばしてもよい? sudo apt update sudo apt install -y kali-linux-default qemuのインストール WSLgが出て久しいのでXサーバは利用しない。単にqemuを入れるだけでOK。 ※dosfst…
ENECHANGE所属のエンジニア id:tetsushi_fukabori こと深堀です。 最近、愛犬のバーニーズマウンテンドッグが当たり前のように飼い主のベッドに乗って寝るようになりました。 飼い主の体の位置など何も気にしないので踏み潰されて起きることもしばしばです。 いつか痛い目を見ると思います(飼い主が)。 今回は2024年2月にオープンされたDocker Build Cloudを触ってみました。 www.docker.com 弊社ではコンテナで稼働するアプリケーションが増えてきており、コンテナイメージのビルドにはCodeBuildを使用しています。 CodeBuildと比較してのメリ…
こんにちは,めぶきぶです.この記事は,大学院生の春休みに就活をほったらかして作成した,自作CPUに自作OSを実装する,その記録になります. タイトルは「RISC-Vベースの自作CPUに自作OSを実装(helloコマンドしかできない)」ですが,もう少し詳しく説明すると,「RISC-VとChiselで学ぶ はじめてのCPU自作」の内容をVerilogに移植し,「Writing an OS in 1,000 lines」という記事中のhelloコマンドまでを,移植したCPU上で動作させるという意味です.完全に自作というわけではないです. 1.完成したもの 2.システムの全体像 2.1.FPGAボード…
Rust は人気なプログラミング言語である。 しかしながら今は Rust は Plan 9 での実行をサポートしていない。 doc.rust-lang.org したがって Plan 9 で Rust で書かれたプログラムを実行するには、コンパイラを移植するといった大変な作業が必要かと思っていた。しかしながら Wasm を使うことで、特に苦労なく実行することができたので紹介する。 この試みは id:lufiabb が Plan 9 でも Rust を動かせるようにしようと言っていたがきっかけである。 環境 Ubuntu 23.10 がインストールされた AMD64 マシン上で作業している。Pla…
はじめに Docker Desktop は多くの開発者にとって便利なツールですが、さまざまな理由で Lima への移行を検討するケースもあります。この記事では、MAC でDocker Desktop をアンインストールし、Lima を導入する過程を説明します。Limaはcontainerd を実行するための Linux 仮想マシン (通常は macOS 上) 、2022 年 9 月 14 日にサンドボックス成熟度レベルで CNCF に承認されてます。 参考文献 Lima Installation | Lima Usage | Lima Docker Desktop のアンインストール Dock…
はじめに 基礎技術研究部の末吉です。 バグを検知するツールにサニタイザー(Sanitizer)というものがあります。 英語で Sanitizer は「消毒剤」という意味で、Hand Sanitizer なら手指消毒剤を意味します。 ここで紹介するサニタイザーは、菌の代わりにバグを消毒してくれます。 サニタイザーは通常、GCC などのコンパイラに付属していて、コンパイル時にアプリケーションにバグの検知・報告機構を計装(instrument)します。 そしてアプリケーションの実行中にバグの発生を検知したらバグの調査に有用な情報を出力してアプリケーションを終了させます。 ここではサニタイザーの中でも…