2013年2月16日 星期六

安裝bochs

最近為了調試bootloader 發現在Linux上有一套帶有除錯工具的虛擬機器bochs
這套虛擬機器可以單步執行並可以查看記憶體位址、暫存器內容等等
但在ubuntu-12.04LTS中所預設的bochs是沒有dbugger的
必須自行編譯才可得到帶有debugger的bochs
以下為編譯方式

Step1. sudo apt-get install libgtk2.0-dev
Step2. sudo apt-get install libsdl1.2-dev
Step3. sudo apt-get install flex
Step4. sudo apt-get install bison
Step5. apt-get sources bochs
Step6. cd bochs-2.4.6/
Step7. ./configure --enable-debugger --prefix=/usr --with-sdl
Step8. make
Step9. sudo cp bochs /usr/bin/bochsdbg

建立bochsrc
在啟動bochs前要先建立bochsrc檔
以下為bochsrc內容

megs: 32 romimage: file=$BXSHARE/BIOS-bochs-latest vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
vga: extension=vbe
floppya: 1_44=boot.img, status=inserted
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
#ata0-master: type=disk, path=boot.img, mode=flat, cylinders=1,heads=1,sectors=1
 ata0-slave: type=cdrom, path=dosml.iso, status=inserted
boot: floppy
log: bochsout.txt
mouse: enabled=0
cpu: ips=15000000

啟動bochs
bochsdbg -f bochsrc

隱藏文章

2012年9月5日 星期三

在MinGW下編譯FFmpeg

Step 1. 下載FFmpeg(download)
  注意若要在MinGW下編譯,ffmpeg.org版本會有問題
  這裡使用zeranoe FFmpeg builds版本,可正常編譯
Step 2. 編譯FFmpeg
  在編譯FFmpeg前有幾個相依性套件需先安裝(pkg-config、glib、zlib、SDL、yasm)
  相關安裝請參考前幾篇網誌。
  (1) ./configure --enable-static --enable-shared
      --enable-memalign-hack --enable-ffplay
  (2) make
  (3) make install

注意在這裡編譯後並不會產生ffserver.exe,是因為在MinGW平台並無對應網路API,若要編譯出ffserver.exe可在cygwin平台或Linux平台即可

在MinGW中安裝SDL

./configure --prefix=/mingw
make
make install
隱藏文章

在MinGW安裝pkg-config

Step1. 到GTK下載套件(download)
Step2. 安裝套件

  1. 將GLib Package中的libglib-2.0-0.dll複製到C:\MinGW\bin
  2. 將Zlib Package中的zlib1.dll複製到C:\MinGW\bin
  3. 將pkg-config Package中的pkg-config.exe複製到C:\MinGW\bin
  4. 將gettext-runtime Package中的intl.dll複製到C:\MinGW\bin
Step3. 設定環境變數
     cat >> /usr/local/etc/profile.local << "EOF"
     if [ -z "$PKG_CONFIG" ]; then
           export PKG_CONFIG=/mingw/bin/pkg-config.exe
     fi
     if [ -z "$PKG_CONFIG_PATH" ]; then
           export PKG_CONFIG_PATH=/mingw/lib/pkgconfig:/usr/local/lib/pkgconfig
     fi

隱藏文章

編譯zlib

./configure --prefix=/mingw
make -f win32/Makefile.gcc
cp zlib1.dll /mingw/bin/zlib1.dll
cp zconf.h /mingw/include/zconf.h
cp zlib.h /mingw/include/zlib.h
cp libz.a /mingw/lib/libz.a
cp libz.dll.a /mingw/lib/libz.dll.a

隱藏文章

解壓縮.tar.xz檔案

解壓縮 xxx.tar.xz檔案
$xz -d xxx.tar.xz
$tar -xvf xxx.tar
隱藏文章

在MinGW下編譯yasm

Yasm是一個NASM Assembler因編譯ffmpeg需要,我們將嘗試在MinGW環境下編譯Yasm函式庫
Step1. 下載YASM函式庫(download)
Step2. 編譯YASM函式庫
           ./configure -prefix=/mingw
           make
           make install
    隱藏文章