Ubuntu18.04インストール構成Bochs2.6.9、コンパイルして実行GeekOS

Ubuntu18.04インストール構成Bochs2.6.9、コンパイルして実行GeekOS

インストールBochs2.6.9

ダウンロードBochs2.6.9

入力し、ダウンロードアドレス
検索Bochsの-2.6.9.tar.gzをダウンロードして保存

解凍Bochsの-2.6.9.tar.gz

抽出液にコマンドを使用することができ、

sudo tar zxvf bochs-2.6.9.tar.gz

マウスの右ボタンで直接「ここまでエキス」を選択することができます

インストールBochsの

Bochsの-2.6.9ディレクトリが入り
、次のコマンド入力端子を

sudo ./configure --enable-debugger --enable-disasm
sudo make
sudo make install

:最初の行を入力した後、それはエラーの可能性があり
ERROR:GUIが見つからなかったX-のWindows、X-Windowsのしかし、ライブラリを選択されました。
だから、この時間はあなたが、端末に入力する必要があります。

sudo apt-get install libx11-dev xserver-xorg-dev xorg-dev

2行目の終了と第三の行の後の入力

あなたはこれらの二つのブログを参照することができ、より素晴らしいエラーと解決策:
https://blog.csdn.net/geeker_12/article/details/11409009
https://blog.csdn.net/aurorayqz/article/details/ 80310954

スタートBochsの

Bochsの直接入力端子を起動
し、次のエラーが発生する可能性があります
とBochsの次のメッセージザを終了している:
[] .bochsrc:187:不正な指令にCPUセット。

説明CPU構成の問題で
、端末に入力します。

bochs -help cpu

会出现:
サポートされているCPUモデル:
bx_generic
ペンティアム
pentium_mmx
amd_k6_2_chomper
p2_klamath
p3_katmai
p4_willamette
core_duo_t2400_yonah
atom_n270

そして、入力端子 sudo gedit .bochsrc

おそらく、187行に記載されていますCPU:モデル=

CPU:モデル= CPUモデルにおける複数の支持のために修飾された後方部分
(というよりも、元の推奨コメントは、オリジナルの削除します)

たとえば、次のように
CPU:モデル= bx_generic

保存して終了し
再実行しBochsの

そして、エラーが発生することがあります
Bochsのを低レベルのサウンドをサポートしてコンパイルされていません

入力端子

sudo gedit .bochsrc

おそらく915行で、ファイルのコメントアウト音:.ドライバー=デフォルト、waveout =は/ dev / dspのwavein =、MIDIOUT =

再びBochsの再実行
の成功を!

Bochsの設定

私たちは、端末のBochsに入ったときに、
Bochsのは、現在のディレクトリのために、自分自身に、デフォルトの設定ファイルとして以下のファイルを検索します:
.bochsrc
bochsrc
bochsrc.txt
bochsrc.bxrc(Windowsの場合のみ有効)

私たちは、自分自身のbochsrcという名前のファイルを作成することができ、我々はBochsの仮想マシンの構成を指定したいです

入力端子

sudo gedit bochsrc

以下の貼り付け(自分たちのニーズに応じて変更を確実にするためにここに注意を払うROMIMAGEをしてvgaromimageこれら2つの経路がそうでないかを確認するメッセージが表示されます、正しい場合に仮想マシンの起動をオープンできませんでしたROMイメージファイルのエラー):

#################################################################
# Bochs的配置文件
# Configuration file for Bochs
#################################################################

# how much memory the emulated machine will have
megs: 32

# filenameof ROM images
romimage:file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage:file=/usr/local/share/bochs/VGABIOS-lgpl-latest

# which disk image will be used 这个是启动软盘
floppya:1_44=a.img, status=inserted
#后面我们会在运行GeekOS时将它改成fd.img

# choose the boot disk 确定启动方式
boot: floppy

# where do we send log messages?
log: bochsout.txt

# disable the mouse
mouse: enabled=0

# enable key mapping ,using US layout as default
keyboard:keymap=/usr/local/share/bochs/keymaps/x11-pc-us.map

保存して終了

インストールと操作GeekOSを使用してコンパイルBochsの

のみGeekOSを実行するために、このステップをスキップすることができれば、次は、自分のフロッピーディスクを生成している:
(ターミナルに入力:sudo bximage
順次入力:
1
fdが
Enterキーフロッピーディスクa.imgを生成された押し)

NASM GeekOSをダウンロードしてインストールします

インストールは特別な注意をNASMのような少し古いバージョン、インストール払う必要があり2.08.02バージョンを、その後の操作で最新のが、エラーが発生します
、最初のダウンロードにすべての選択NASM-2.08.02.tar.gzを、ダウンロードして保存
解凍後のnasm-2.08に0.02ディレクトリの
ターンは、次のコマンドを入力します。

./configure
sudo make
sudo make install

まだNASM -version入力端子に
2.08.02に見出すことができます

ダウンロードGeekOS
に直接GeekOSのダウンロードには、
解凍ダウンロードしたら、

コンパイルGeekOS

ディレクトリを入力cd geekos-0.3.0/src/project0/build
端末入力を

sudo make depend
sudo make

:与えられ、ラインが表示されますがありCC1:すべての警告はエラーとして扱われている
のMakefile全体のメイクとして見た場合に、警告エラー

私たちは現在のディレクトリにあるMakefileを開くので、

sudo gedit Makefile

-Werror 149行を検索します。

CC_GENERAL_OPTS := $(GENERAL_OPTS) -Werror 

次のように改正:

CC_GENERAL_OPTS := $(GENERAL_OPTS)

再び保存して終了、sudoのメイク

[私が最初にここにMakefileを出現につながる、NASMをインストールすることを忘れしようとすると:177:ターゲットのためのレシピ geekos / lowlevel.oは、「失敗したが、
すぐにNASMをインストールすることができ、バージョン2.08.02をインストールすることを忘れないで、一見すべての最新のサポートされていません]

須藤は再び作る
登場
「__stack_chk_fail」未定義の参照に

ソリューションは、ライン上で148件のMakefileファイルですGENERAL_OPTS:= -O -Wall $(EXTRA_C_OPTS ) コンパイラオプションの後ろを追加します

-fno-stack-protector

以下の変更のために109行に次にMakefileの100行

100 TARGET_CC := $(TARGET_CC_PREFIX)gcc -m32                                                  
101 
102 # Host C compiler.  This is used to compile programs to execute on                        
103 # the host platform, not the target (x86) platform.  On x86/ELF
104 # systems, such as Linux and FreeBSD, it can generally be the same                        
105 # as the target C compiler.                                                               
106 HOST_CC := gcc -m32                                                                       
107 
108 # Target linker.  GNU ld is probably to only one that will work.                          
109 TARGET_LD := $(TARGET_CC_PREFIX)ld  -m elf_i386

それから

sudo make clean
sudo make depend
sudo make

あります
猫geekos / fd_boot.bin geekos /のsetup.bin geekos
/ kernel.bin> fd.imgは正常にコンパイルされなければなら

入力端子にls -aチェックが
fd.img発見し.bochsrc

当社修正するには、この時間より前に作成したプロファイルbochsrcはフロッピーがfd.imgで
再入力Bochsの実行は
まだエラーになります
デフォルト.bochsrcので、と.bochsrcここでは基本的に無価値、かなり古いではありません。

私たちは、端末を再入力

bochs -f /home/shane/bochs-2.6.9/bochsrc

それはBochsのプラスの後ろにある-f 刚刚创建和修改的配置文件bochsrc的绝对路径
デバッグ仮想マシンを起動するための入力6
あなたは、黒い画面があることがわかります、入力端子Cにこの時間戻って、Enter
次のインターフェイスに表示されます:
GeekOS実行成功を!

[あった場合に再度、
Init_IDTでアサーションを失敗しました:g_handlerSizeNoErr == g_handlerSizeErrは
NASMバージョンでは、新たな問題が唯一の再インストール2.08.02再びより多くの仕事を始めることができすぎているため]

彼女が成功したチャートの最終的な結果のみを残して、少し写真で、このブログので、できるだけ早く問題を解決するために、このタスクの時点で忙しかったが、あなたは上記の手順に従えば、それは問題になりませんので。

次のブログへのパーツ参照
https://111qqz.com/2016/06/geekok-project0/(このブログ便利!)
Https://blog.csdn.net/ByChen623/article/details/53619084# commentBox

公開された25元の記事 ウォン称賛19 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_42605042/article/details/90299638