ONIEをbuildしました


おはようございます。ライトノベル好きのツチノコです。ヒマワリの季節が近づいてきましたね。

さて、タイトルの通り、ONIEをbuildしました(というか何回かしている)ので日本語で手順をまとめておきます。
公式のドキュメントは https://github.com/opencomputeproject/onie/wiki/Building-ONIE です。

5月のJapan ComCamp meets de:codeでLTした、例のブンチンカッコカリからのリカバリの時にも利用しました(スライド中ではONIE関連は省略)。

前の記事はここです。間があいてしまってもうしわけないです(夏休みの宿題はためるタイプでした)

環境はDockerで作ってしまうことにします。Dockerfileは https://gist.github.com/wataken44/e5e6c7f94b257c15196d50bab9a9a2de にあります。

まずはimageをbuildします。

# wget https://gist.githubusercontent.com/wataken44/e5e6c7f94b257c15196d50bab9a9a2de/raw/13fe198b9e93c7ab2a45767c176435f11ad89247/ONIE.Dockerfile -O Dockerfile
# docker build -t onie-work:latest <Dockerfileを置いたディレクトリ>

Dockerfileの中身は以下のようになってます。

FROM debian:jessie

MAINTAINER example@example.com

RUN apt-get clean && apt-get update
# git-coreはリポジトリとってくるのに必要
# sudo, makeは公式のMakefileで環境を整える(make debian-prepare-build-host)のに必要
# wget, pkg-config, cpioはbuildに必要だが、公式のMakefileでインストールされないので必要
RUN apt-get install -y git-core sudo make wget pkg-config cpio

# rootではbuildできないのでbuilduserを追加してsudoersに追加
RUN useradd -m builduser
RUN echo 'builduser ALL=(ALL:ALL) ALL' >> /etc/sudoers

# リポジトリをclone
RUN su builduser -c "cd /home/builduser/; git clone https://github.com/opencomputeproject/onie"
# 公式のMakefileで環境を整える(色々パッケージがインストールされる)
RUN cd /home/builduser/onie/build-config && make debian-prepare-build-host

# gitのglobal設定を適当に入れる(入れておかないとbuildがこける)
RUN su builduser -c "git config --global user.email example@example.com; git config --global user.name example"
# bashを使う
RUN chsh -s /bin/bash builduser
# PATHを設定(設定しないとmkdosfsが実行できずbuildがこける)
RUN echo 'export PATH=$PATH:/sbin/:/usr/sbin/' >> /home/builduser/.bashrc

コンテナを走らせてbuildします。

# docker run --name onie-work -i -t onie-work /bin/bash
root@f304bbf507f4:/# su builduser
builduser@f304bbf507f4:/$ cd ~/onie/build-config
builduser@f304bbf507f4:~/onie/build-config$ make -j4 MACHINEROOT=../machine/<vendor> MACHINE=<vendor>_<model> all

<vendor>,<model>のところにはお手元の機種名を入れます。DellのS6000-ONだとそれぞれdell, s6000_s1220になります。一覧は ~/onie/machine 以下にあります。

builduser@f304bbf507f4:~/onie/machine$ ls --color=none
accton  alphanetworks  celestica  centec  dell  dni  facebook  imt  intel  inventec  kvm_x86_64  mellanox  nxp  plexxi  qemu_armv7a  quanta  wiwynn  wnc
builduser@f304bbf507f4:~/onie/machine$ ls dell/ --color=none
dell_s3000_c2338  dell_s4000_c2338  dell_s4048t_c2338  dell_s4810_on_p2020  dell_s6000_s1220  dell_s6010_c2538  dell_s6100_c2538  dell_z9100_c2538

1時間くらいでbuildが終わり、isoイメージやpxe用のイメージができます。

builduser@f304bbf507f4:~/onie/build-config$ make -j4 MACHINEROOT=../machine/dell MACHINE=dell_s6000_s1220 all
(中略)
=== Finished making onie-x86_64-dell_s6000_s1220-r0 master-201607260338 ===
builduser@f304bbf507f4:~/onie/build-config$ ls ../build/images/
dell_s6000_s1220-r0.initrd   onie-recovery-x86_64-dell_s6000_s1220-r0.efi64.pxe  onie-updater-x86_64-dell_s6000_s1220-r0
dell_s6000_s1220-r0.vmlinuz  onie-recovery-x86_64-dell_s6000_s1220-r0.iso

あとはUSBメモリに焼くなりなんなりしてセットアップすればONIEのインストールができるようになります。
ご活用ください。

BIOS
上はDell S6000-ONのBIOS画面です。AMIのBIOSが動いていて、8GBのメモリが乗っていることがわかります。
シリアル経由ですがツチノコブログの読者には見慣れた画面ではないでしょうか。

S6000のBIOS
Boot orderを変更できる画面です。

ネットワークスイッチのBIOS画面が見れて、そこらへんのPCと同じようにOSをインストールしたりできるようになりました。すごい時代ですね。

p.s. このテンプレ展開のせいで、おれのラブコメが鬼畜難易度がすごい

«
»

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Optionally add an image (JPEG only)