2014-01-01から1年間の記事一覧

mrubyでUEFIブートローダなやつのバイナリ配布

多分みなさんEDK2のビルドが面倒い最高で試すの嫌だと思うので、バイナリ配布しておきますね。 こちらです:https://s3.amazonaws.com/syuu1/mruby.efiブートローダのスクリプトはこちら: https://raw.githubusercontent.com/syuu1228/mruby_on_efi_shell/d…

GCEでOSvを動かそう

OSvは、ハイパーバイザやIaaSプラットフォームへアプリケーションをデプロイすることに特化した軽量OSです(※詳しくはこちら)。今回はRuby on Railsで書かれたブログエンジン「Publify」をインストールしたOSvのイメージをGoogle Compute Engine(GCE)へデ…

UEFI Native API on mruby

mrubyでブートローダを書けるようにしました - かーねる・う゛いえむにっきの記事はlibc API経由でmrubyからUEFIの機能を使う話でした。 これとは別に、mruby on efi shellにはUEFIのネイティブAPIへアクセスするためのクラスが用意されているという話をしま…

mrubyでブートローダを書けるようにしました

カーネル/VM@関西7回目でお話したネタです。スライドはこちら: UEFI時代のブートローダ from Takuya Asada 既にmrubyはUEFIへ移植されています(覚え書き: mruby on EFI Shell)。また、EFI StubカーネルをUEFIアプリから実行するのは非常に簡単であるこ…

OSvのビルド環境の構築

OSv

OSvはMacやWindows上のVirtualBox・VMware、VMware ESXiなど様々な環境で動作するのですが、ビルド環境はFedoraの最新版という極めて限られた環境でのみテストされています(理屈の上では他のディストリビューションでもビルド可能ですが、細かなパッケージ…

1コマンドでJavaアプリをOSvへデプロイ

OSvは、ハイパーバイザやIaaSプラットフォームへアプリケーションをデプロイすることに特化した軽量OSです(※詳しくはこちら)。 また、CapstanはGo言語で実装されたOSvのデプロイツールです(※詳しくはこちら)。OSvはJVM上で動くアプリケーションをメイン…

OSv CLIにコマンドを追加しよう

OSv CLIの使い方 - かーねる・う゛いえむにっきで見たとおり、現状CLIのコマンドは非常に少なく、REST APIを直接呼び出して一部の操作を行わざるを得ない状態です。そこで、コマンドを足してOSvへコントリビューションしてみるのは如何でしょうか。 例えば、…

OSv CLIの使い方

OSv

リモートCLIについて - かーねる・う゛いえむにっきでも紹介したCLIの使い方についてです。 リモートCLIに必要なもの まず、Linuxホスト側でCLIをインストールする必要があります(参照)。 その上で、httpserver(REST APIサーバ)を含むOSvのイメージを実…

Capstanの使い方

OSv

CapstanはGo言語で実装されたOSvのデプロイツールです。 各種アプリケーションを含んだディスクイメージを1コマンドでダウンロードし、ローカルのKVMやVirtualBoxなどへデプロイすることが出来ます。以下に使い方を紹介します。 Capstanの対応環境 対応OSは…

OSvでLuaインタープリタを動かす

OSvは、ハイパーバイザやIaaSプラットフォームへアプリケーションをデプロイすることに特化した軽量OSです(※詳しくはこちら)。OSvでは簡易CLIを実装するためにLua言語が使用されています。 この記事では、CLI以外の任意のLuaプログラムをOSv上で実行してみ…

リモートCLIについて

OSv

OSvには簡易シェルとしてLua CLIが用意されていて、capstan経由でLua CLIしか入ってないVMイメージが配布されていたりするのですが、実はこのCLIは全てREST API上に実装されています。つまり、常にhttp://127.0.0.1:8000/へRESTを送ってシステムのAPIを叩い…

mruby on EFI Shellのビルド

※この記事では後々mrbgemsを追加していく事などを意図してmrubyをビルドする事に拘っているが、単にmrubyをUEFIで試してみたいだけならば自分でビルドする必要はない。ここのHow to useからリンクされている"download page"をクリックすればダウンロードでき…

EDK2でUEFI Application開発環境整備とQEMU Virtual FAT

もうちょっと応用的な内容にトライしようと思ったら久々の開発環境整備で手間取ったので、まずどうやって試すのか、について書いてお茶を濁す。開発環境はFedora 20 + gcc-4.9 from rawhideという変則な環境だが、新しめのパッケージが使われているディスト…

OSvのご紹介 2014年12月版

OSv

ご注意:OSvは絶賛開発中のプロダクトであるため、将来のバージョンではここに書いてある通り動かない場合があります。 OSvとは OSvは、ハイパーバイザやIaaSプラットフォームへアプリケーションをデプロイすることに特化した軽量OSです。 Linuxで動作するい…

Baytrail-M NUC(DN2820FYKH)でFreeBSDが起動しなかった話・その後

http://www.slideshare.net/syuu1228/intel-nuc の続きの話です。CURRENTにマージされたbug fixはMFCって言って、stableへマージされて次のRELEASEに含まれる仕組みになってるっぽいんですが、このパッチも無事取り込まれたようで、次のRELEASE(10.1, 9.3か…

Macでもmruby-simplehttpserverをcapstanを使ってお手軽簡単にOSv向けにビルド&実行

前回の記事ではLinuxに絞ってcapstanを使ったmruby on OSvのビルド&実行方法を紹介しましたが、アプリケーションのコンパイルが他プラットフォームでは出来ないと説明しました。代わりに、github上にビルド済みのアプリケーションバイナリを置いて、OS Xでc…

matsumotory氏のmruby-simplehttpserverをcapstanを使ってお手軽簡単にOSv向けにビルド&実行する

OSvは最近capstanというビルド・デプロイツールが出来たので、以前のようにOSをビルドしなくてもアプリだけビルドしてVMイメージ作成&実行が簡単にできます。ここでは、@matsumotory氏がブログで解説されていたmruby-simplehttpserver用のcapstanリポジトリ…

Linux上のmikutterでリンクをクリックしたら別のLinux上のブラウザで表示する方法

Linux上のmikutterでリンクをクリックしたらMac上のブラウザで表示する方法 - かーねる・う゛いえむにっきの続きですが、「いや、おれMacとか使ってねぇし?不自由なOSユーザー氏ね!」みたいな声が聞こえてくる気がする*1ので、Linuxでも出来るかどうか考え…

Linux上のmikutterでリンクをクリックしたらMac上のブラウザで表示する方法

VM上のLinuxでmikutterを動かしてたり、synergyで2台のPCを並べて使ってたりする場合に、TwitterだけLinuxのmikutterで眺めてWebはMacで見たい場合ってありませんか。僕はあります。 そんな時、SSHを使えば割と簡単に実現出来ます。 MacのSSHサーバを有効化 …

githubで公開することにしました

既にこのブログで第1回、第2回を公開していますが(追記:githubでの公開にあわせて削除済み)、原稿元データを含めて全ての回をgithubで公開することにしました。 githubリポジトリ 公開ページ 現在、TeXへの変換作業のボランティアを募集しています。 詳し…

FreeBSD-10 install image for Baytrail-M NUC(DN2820FYKH)

Intel Baytrail-M NUC(DN2820FYKH) causes kernel panic due to its broken ACPI table: http://www.freebsd.org/cgi/query-pr.cgi?pr=187966This install image includes patched kernel for the machine, you are able to install FreeBSD-10 on the machi…

Baytrail-M NUC(DN2820FYKH)でFreeBSDが起動しなかった話・解決編

これの続き。Linuxでは僕の書いたpatchと同じ感じでreservedが来たらtriggerならlevel、polarityならlowを返すようにしています。 http://lxr.linux.no/linux+v3.13.5/arch/x86/kernel/acpi/boot.c#L1094ですので、このパッチをマージして貰うという事で良い…

Baytrail-M NUC(DN2820FYKH)でFreeBSDが起動しなかった話

bhyve用にこれ買ってみたんですよ、これ。まぁ新しいハードだし地雷だろうなと思ってたんだけど、面白そうにおもっちゃってつい人柱っちゃったんですよ。はい。したらもういきなりドハマリして。 FreeBSDが入っている2.5インチHDDを繋いでもレガシーブートモ…

RubyでTAPを使ったトンネリングプログラムを実装してみる

こちらのサイトでシンプルなPythonの実装が配布されていたので、Rubyでも実装してみました。 require "socket" TUNSETIFF = 0x400454ca IFF_TAP = 0x0002 PEER = "192.168.0.100" PORT = 9876 tap = open("/dev/net/tun", "r+") tap.ioctl(TUNSETIFF, ["tap%…

OSvにマージされたmrubyを試す

$ sudo apt-get install openjdk-7-jdk autotools-dev libltdl-dev libtool autoconf autopoint libboost-all-dev \ genromfs zfs-fuse autoconf ant libffi-dev ruby bison gyp git build-essential qemu-utils qemu-system-x86 \ bridge-utils libvirt0 li…

FreeBSD 10.0-RELEASEのBHyVeでLinuxゲストが「WRMSR・RDMSR」などの単語を含むエラーメッセージと共に異常終了する場合

一部のLinuxカーネルと一部のIntel CPUの組み合わせでは「Unknown WRMSR code 391, val 2000000f, cpu 0」「vm exit rdmsr 0xe8, cpu 0」などのエラーがでる。 これは、該当するMSRへのアクセスをBHyVeがハンドルせずに異常終了して済ませてしまっているため…

FreeBSD 10.0-RELEASEのBHyVeでOpenBSD 5.4をインストールしてみよう

OpenBSDサポートはまだ実験段階で、カーネルを改変したバージョンの5.4しか動かない。 この問題を回避するために、改変版カーネルがインストールされたディスクイメージをダウンロードする。 # cd bhyve-script # cp vm0 openbsd3 これから作るVMの名前にvm0…

FreeBSD 10.0-RELEASEのBHyVeでFreeBSD 9.2-RELEASEをインストールしてみよう

# cd bhyve-script # cp vm0 freebsd2 これから作るVMの名前にvm0をコピー(末尾は数値で、他のVMと重複しない値でなければならない) # vi freebsd2 NIC=“em0” をお使いのNIC名に VCPUS=“1”を任意のvCPU数に VMRAM=1024”を任意のメモリサイズに DEVSIZE=“2G…

FreeBSD 10.0-RELEASEのBHyVeでCentOS 6.5をインストールしてみよう

# cd bhyve-script # cp vm0 centos1 これから作るVMの名前にvm0をコピー(末尾は数値で、他のVMと重複しない値でなければならない) # vi centos1 NIC=“em0” をお使いのNIC名に VCPUS=“1”を任意のvCPU数に VMRAM=1024”を任意のメモリサイズに VMOS=“freebsd…

FreeBSD 10.0-RELEASEのBHyVeでUbuntu 13.10をインストールしてみよう

# pkg install grub2-bhyve tmux # fetch http://bhyve.org/bhyve-script.tar # tar -xvf bhyve-script.tar # cd bhyve-script # cp vm0 ubuntu0 これから作るVMの名前にvm0をコピー(末尾は数値で、他のVMと重複しない値でなければならない) # vi ubuntu0 …