- wsl 18.04
- BBB
- USBシリアルケーブル
- microSDカード
gcc-arm-linux-gnueabi
のインストール
gcc-arm-linux-gnueabi
- ブートローダーリポジトリのダウンロード
git clone git://git.denx.de/u-boot.git
- ビルド(フォルダ内で実行する)
make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- distclean
make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- am335x_evm_config
make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
- MLO
- u-boot.img
- armのクロスコンパイラ環境をインストールする
- 『ARMのGCCコンパイル環境を構築する』を実施する
- プロジェクトにもcross-compilerがついているが、実行形式が32bit版のため実行できない
- 本体プロジェクトをダウンロードする
- <方法1>安定版:本家のリンクAn ARM version (BeagleBone Black board from TI)からダウンロードする
- <方法2>最新版:github版real-xinu/xinu-bbbからダウンロードする
- ソースの修正:ethernet関係のソースがうまく動作しないので、その処理をコメントアウトする
device/eth/ethinit.c
のethinit()関数の中身をすべて削除system/initialize.c
nulluser()
関数内のnet_init();
をコメントアウトstartup()
関数内のdhcp関係のソースをすべてコメントアウト
- Makefileを修正する
- コンパイラの修正(同梱の実行できないものではなく、インストールしたものを指定するように変更する)
#########################################################################
# #
# #
# Makefile for Beaglebone Black version of the Xinu operating system #
# #
# includes: .deps and .defs #
# #
# #
#########################################################################
- COMPILER_ROOT = ../cross_compiler/bin/arm-none-eabi-
+ COMPILER_ROOT = arm-none-eabi-
PNAME = bbb
PLAT = Platform_$(PNAME)
TOPDIR = ..
- 共有ライブラリのパスの修正(同梱のものではなく、インストールしたものを指定するように変更する) ※実施しなくても問題はない
xinu: Makefile rebuild $(BLDDIRS) $(DEFSFILE) $(DEPSFILE) $(CONFH) $(CONFC) $(LD_LIST)
@echo;echo 'Loading object files to produce xinu'
- @$(LD) $(LDFLAGS) $(LD_LIST) -o $(XINU) -L../cross_compiler/lib/gcc/arm-none-eabi/4.8.1/ -lgcc
+ @$(LD) $(LDFLAGS) $(LD_LIST) -o $(XINU) -L/usr/lib/gcc/arm-none-eabi/X.X.X/ -lgcc
@$(OBJCOPY) -O binary $(XINU) $(XINUBIN)
@./uboot-tool/mkimage -A arm -O linux -T kernel -C none -a 0x81000000 -e 0x81000000 -d $(XINUBIN) $(XINUBOOT)
- mkimageの再配置
uboot-tool
配下のmkimage
もarch違いにより実行できないため、削除し、前段階で環境作成時に生成されているmkimage
をコピーして配置する
- ビルド
compile
フォルダでmake
を実行し、『xinu
』が生成されれば成功
- xinu(.binではないほう)
- FAT32でフォーマットする(SD Fommatterでもよい)
- 以下の物を入れる
- MLO(ブートローダービルドで作成済)
- u-boot.img(ブートローダービルドで作成済)
- xinu.boot(本体ビルドで作成したxinuをxinu.bootにリネーム)
- uEnv.txt(テキストで以下のように作成)
bootfile=xinu.boot
boot_mmc=fatload mmc 0 0x80200000 ${bootfile}; bootm
uenvcmd=run boot_mmc
以下のようにコンソールに大きくXinuの文字が出れば成功。シェルが起動しているので、echoコマンドなどが実行できる
- XinuBBB
- Getting started with Embedded Xinu]
- Beagleboard:Main_Page
- Debugging U Boot errors on the BeagleBone Black rev C:ethernet関係のソースがあると起動しない問題について
- wsl/ubuntu上でTFTPサーバを動かす