FreeBSD on GA-E7AUM-DS2H with Over 2GB of RAM

Written by たちゃな@巫研 < tatyana at miko dot org >

=更新履歴=
公開。(Dec 1, 2009)

English version

Abstract

Gigabyte 製 MPC7A マザーボード GA-E7AUM-DS2H の BIOS にはバグがあり、

していると、FreeBSD が正常動作しない。(BIOS バージョン F4 にて確認)

といった方法で回避することもできるが、ここではソフトウェア的な解決を試みる。

What is wrong?

根本的原因は、BIOS が返す SMAP 情報に問題があり、フリーエリア (100000:bfdf0000) にフレームバッファ (70000000:10000000) が重なる箇所が存在するため。

BASELENGTHTYPE
09e8001
9e8008002
f0000100002
100000bfdf00001
70000000100000002
800000003fef00001
bfef000030004
bfef3000d0003
ea00000020000002
fec0000014000002
100000000400000001

* bfdf0000 は 6ff00000 でなければならない

よって、ブートローダにパッチを当て、重なり合いを解消した SMAP 情報を OS に渡すようにすれば問題を解決できる。

How to patch and rebuild the boot loader

パッチ導入の手順としては、まずメモリを 2GB に落とすなどした状態で FreeBSD をインストールし、OS のソースにパッチを当てる。

$ mkdir ~/Sources
$ cd ~/Sources
$ wget http://miko.org/~tatyana/tech/FreeBSD/FreeBSD_8.2_GA-E7AUM-DS2H_Over2GB.diff
$ openssl rmd160 FreeBSD_8.2_GA-E7AUM-DS2H_Over2GB.diff
RIPEMD160(FreeBSD_8.2_GA-E7AUM-DS2H_Over2GB.diff)= 522615669719b4cac3a0f6a838fefdc00a93bcdb
$ cd /usr/src
$ sudo patch -p0 < ~/Sources/FreeBSD_8.2_GA-E7AUM-DS2H_Over2GB.diff

パッチ適用後、ブートローダをビルド&インストールする。

$ cd /usr/src/sys/boot
$ sudo make clean
$ sudo make obj
$ sudo make depend
$ sudo make
$ cd i386/loader
$ sudo make install
$ cd ../..
$ sudo make clean

Thanks

adidasprince's Chameleon patch に触発され、このパッチを作成した。


return