投稿

8月, 2018の投稿を表示しています

Rust で UEFI を使う最近の方法

uefi-rs を使うとかなりサクっと使えて良い。cargo build をするだけで UEFI Application が吐ける。 まず,cargo-xbuild をインストール。 $ cargo install xbuild これは私が以前から使っていた xargo の fork のようだ。 以下のようにそれぞれ準備する。

x86_64-uefi.json { "llvm-target": "x86_64-pc-windows-msvc", "target-endian": "little", "target-pointer-width": "64", "target-c-int-width": "32", "os": "uefi", "arch": "x86_64", "data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128", "linker": "rust-lld", "linker-flavor": "lld-link", "pre-link-args": { "lld-link": [ "/Subsystem:EFI_Application", "/Entry:efi_main" ] }, "panic-strategy": "abort", "default-hidden-visibility": true, "executables": true, "position-independent-executables": true, "exe-suffix…

virt-install で kickstart を使う

Red Hat のサイトの日本語資料は嘘があってダメだった

具体的には, virt-install で ks.cfg を --initrd-inject オプションで渡し,--extra-args "inst.ks=file:/ks.cfg" とするなどと書かれているが,実際にこれを使うと No such file or directory などと言われる。 次のように ks.cfg のディレクトリで http server を起動し, $ python -m http.server 8000 そのあと次のようにインストールする(設定はお好みで) virt-install --connect=qemu:///system --name Fedora27 --hvm --virt-type kvm --ram 4096 --vcpus 4 --arch x86_64 --os-type linux --os-variant fedora27 --disk pool=default,size=5,format=qcow2,bus=virtio --network bridge=br0,model=virtio --graphics none --serial pty --console pty --location /iso/Fedora-Server-dvd-x86_64-27-1.6.iso --extra-args "inst.ks=http://:8000/ks.cfg console=tty0 console=ttyS0,115200n8" Red Hat の日本語サイトのドキュメントはちょくちょく古い情報があって更新されていないので,よくひっかかってしまう。