2013-01-01から1年間の記事一覧
uARMをUEFIへ移植したが、ファイルのシークでも壊れてるのか、おかしな命令食ったよーってエラーで死にました。ソースコード公開しときます。 よくよく考えたら、Makefileでは指定されてるCFLAGSの-Dとかがこっちでは指定されてないので、オカシイのはそのせ…
ちょっとした修正でFreeBSDでも動きました。 GitHub - syuu1228/uARM
case sensitiveなFSでビルド確認されてなくてヘッダが見つからずコンパイル失敗するという信じられないバグがあったが、そこだけ直したらLinuxでも起動しました。 osxブランチの内容はLinuxでもそのまま使えて、特にOSX専用なコードとかも入ってないのでmast…
@monamour555 さんのdiffを取り込んでビルドしてUbuntuのディスクイメージを食わせたところ、無事起動してきました。 osxブランチにマージしてあります。 気が向いたら他のOSでも試してみてね。
AVR上で動くARMエミュレータを実装してLinuxを起動するという頭のオカシイ記事を読んで感動したのだが、よくよく読むとそのARMエミュレータそのものも中々面白そうである。 (和訳はこちら:本の虫: GNU/Linuxを動かせる最低スペックはATmega) エミュレート…
ということで、今年もいよいよ始まりますねGoogle Summer of Code。 Google Summer of Codeってなに Google Summer of Code (GSoC) は2005年の5月から8月に初めて開催され、その後毎年行われているイベントで、Googleが指定したフリーソフトウェアやオープン…
ネットワークスタックの、割り込みコンテキストからプロセスをたたき起こすまでの処理はしっかり読んだつもりなのだが、プロセスコンテキストで寝ている側を深く把握していなかったのでちょっと眺めてみる。 システムコールからプロセスがスリープするまで(…
Looking for valid bootloader image.... Jumping to start of image at address 0xbfc80000 U-Boot 1.1.1 (UBNT Build ID: 4493936-g009d77b) (Build time: Sep 20 2012 - 15:48) BIST check passed. UBNT_E100 r1:2, r2:12, serial #: DC9FDB2920A7 Core c…
頑張れば回避可能なんだけどめんどくせぇからchrootedなdebian環境作ってそこで遊ぼうかなとも思ってたんだが、それも不便だと思い至ったので取り敢えずプリインストールパッケージをpinningする事にした。 dpkg -l|while read line do PKG=`echo $line|awk …
EDK2向けに記事を書くけど、他のSDKを使う場合でも同じ問題が生じると思うので、gnu-efiな人達も読んでおいて下さい。 なお、この問題はIA32では確認できないのですが、どうしてそうなるのか僕はx86のABIにあまり詳しくないので良く分かりません。IA32だと吐…
ペーパーはこちら スライドはこちら 実装できてないものについて話すという非常にアレな発表でしたが、生暖かく受け入れて頂けました。 まぁ、あの場にハイパーバイザー実装のプロみたいな人がたっぷりいたらもっといたぶられてた
この記事に対して、さとうせんせいから”intr_event_bind() の本質的な部分は ie->ie_assign_cpu() を呼んでいるとこで、IRQ-CPU の binding は、そのハンドラ経由で呼ばれる PIC を操作する MD なコードでやっているはずですよ。(CPU単位の統計をとる機能が…
ぼくは10GbEの割り込み周り(MSI-Xによりコア毎に独立したIRQを持つ)とかに興味を持っていたので、以前からこれがかなり気になってたんだが、まずはこれを見て欲しい。 Linux IRQ毎に各CPUの割り込み回数が取れるよね。 $ cat /proc/interrupts CPU0 CPU1 C…
生きていればつらいことがある。 しかし、つらいからと言って簡単に投げ出す事は出来ないということも多い。みなさんもつらまってる時、よくGlendaを見ると思う。 当然のごとく僕もそうである。最近つらい事がよくある。 そんな時のために、Glendaを素早く表…
.vmxファイルにこんなの追記したら、telnetで覗けるようになった。 serial0.present = "TRUE" serial0.fileType = "network" serial0.fileName = "telnet://127.0.0.1:10000"VMware Fusionでしか試してないけど、多分他のVMwareでもいけるんじゃないかな。
多分objdumpとか他のツール使っても出来ると思うけど、udis86に付属のudcliでもこんな感じに簡単にディスアセンブル出来る。 $ udcli -16 -att -v intel -o 7c00 -c 512 freebsd.img 0000000000007c00 eb3c jmp 0x7c3e 0000000000007c02 0000 add %al, (%bx,…
なんか幾つか選択肢があって混乱したので、今理解していることをメモっとく。 EDK II このへん。 オープンソースで開発されてるUEFIのSDKで、UEFIのSDKまわりをググってると一番よく出てくるやつ。 つかいかたはこのへんとか。…なんだが、ソースの取得方法に…
Mac上のVMware FusionやVirtualBoxでUEFI 2.0を試す - かーねる・う゛いえむにっき BIOSとUEFIの歴史 - かーねる・う゛いえむにっき GPTとMBRはどのように違うのか? - かーねる・う゛いえむにっき UEFIのSDK事情 - かーねる・う゛いえむにっき Linuxホスト…
カーネル飛んだ時とか、RIP(EIP)からobjdump -d vmlinuxを見ながら位置を探したりしてたんだけれども、binutilsに含まれてるaddr2line使えばソースコードの行数簡単に見れたのね。まぁ、これがあるからといってobjdumpでディスアセンブルさせて眺めたいケ…
Twitterでちょっと話題にしたのでメモしとく。 sh-3.2$ mkdir -p hoge/huga sh-3.2$ touch hoge/huga/piyo sh-3.2$ ln -sf hoge tmp sh-3.2$ rm -rfv tmp tmp sh-3.2$ ls -l hoge/huga/piyo -rw-r--r-- 1 syuu staff 0 1 22 14:25 hoge/huga/piyo シンボリッ…
UEFI環境でFreeBSDとLinux・Windowsなどのデュアルブート環境を構築するとMBRを使うことになるが、ここで誤って(というかMBR的には正しいが)MBR上のパーティーション(タイプがGPTのやつ)にブートフラグを立てると途端にUEFIでGPTパーティーションが認識…
GRUB1なら良く知ってるんだけど、GRUB2って勉強不足で未だによく分からないのよね。 で、デフォルトカーネルを変えようとした訳だが、最近のUbuntuの/boot/grub/grub.cfgってサブメニューがあって、そこにカーネルの候補が入ってる形になってる。 grub.cfgか…
なんかASUS U24Eを買ったらUSB 3.0ポートが付いてきて、FreeBSD-CURRENTで認識出来たのでUSB 3.0対応ケースを買って2.5 inch SATA HDDを突っ込んで軽く試してみた。 USB 2.0のポート root@u24e:~ # usbconfig list ugen0.1: <EHCI root HUB Intel> at usbus0, cfg=0 md=HOST spd=H</ehci>…
ユーザランドのkexecコマンドへ再起動後のカーネルを渡します。ELFパーサとかbzImageカーネルイメージパーサとか種類あるみたいだけど、それらがカーネルのレイアウト読み取って解釈を行なって、最終的にイメージとメモリレイアウトをシステムコール経由でカ…
なんかBIOS emulationなかなか動かないし、取り敢えずLinux loader欲しいよね。という気持ちが高まりつつある今日この頃、皆様如何お過ごしでしょうか。で、作ってみるならなるべく既存のプログラムを流用して楽にやりたいわけだが、bhyveloadに一番似てるLi…
取り敢えず、BHyVe treeが-CURRENTへマージされるまでは残しときますね。 https://github.com/syuu1228/bhyve
UEFI環境下では、BIOSでサポートされているMBRに代わりGPTと呼ばれる新しいパーティーションテーブルを用います。 2TB以上の大容量なHDDをサポート出来る、と説明される事が多いのですが、具体的にどのような違いがあるのか比較してみます。 MBR MBRはLBA 0…
BIOSの歴史 BIOSはIBM PC(1981年)と共に登場し、「IBM PC互換機」が普及した事によりパソコンの標準ファームウェアとなりました。 以降、ハードウェアもBIOS自身も当時とは全く異なる姿になるまで大きく拡張・変更され続けていますが、アプリケーション互…
Macばっかり使ってるとUEFI 2.0で遊ぶ機会が無く、いつまでも使い方が分からないままな訳ですが、最近のVMwareやVirtualBoxならUEFI 2.0をサポートしているので仮想マシン上で取り敢えず試してみる事が可能です。 VMware Fusionの場合 なんか適当にUbuntu Se…