SheevaPlug で遊ぼうのこーなー
Marvell社が提唱する超小型コンピュータの基本形で、動作が安定している SheevaPlug Dev Kitを紹介します。
SheevaPlug については偉大な先人方の記事がネットにあるので、わざわざ説明不要なのですが、
Sheevaだけこのサイトにないのもアレなので、書いて見ます。
0.目次
1.SheevaPlug-Devkitとは
(1) SheevaPlug とは
SheevaPlug とは Marvell社が提唱する プラグ・コンピューター の基本形の超小型サーバです。
プラグ・コンピューターは、電源アダプターのような形状をしており、 コンセントに挿すだけ(※注1)でどこでもサーバー設置できることがコンセプト の製品で、 10cm角の筐体の中にパソコンに必要な機能が一通りそろっており linux で動かすことが可能です。
プラグ・コンピューターは、多くのメーカから各種発売されていますが、 ここではGLOBALSCALE社の SheevaPlug - Devkit を紹介します
なお、玄人志向の 玄柴 や、sheevaplug+ は eSTATA 端子の有無だけの違いです。
機能 | 内容 |
---|---|
CPU | Marvell Kirkwood 1.2GHz (ARM v5) |
主記憶 | 512MB DDR2 RAM |
補助記憶 | 512MB NAND FLASH内蔵 (u-boot、ubuntuインストール済) SDHC ポート |
ネット | ギガビットイーサ ×1 |
USB | 1ポート+OTGポート(JTAG兼用) |
E-SATA | 1ポート(玄柴、Sheevaplug+) |
内蔵時計 | 電池バックアップ付き |
電源 | AC電源(100~240V/50~60Hz) 20W |
筐体サイズ | 110mm (L) x 69.5mm (W) x 48.5 mm (H) |
JTAG | JTAG アダプターは本体内蔵 |
(※注1) せっかくのプラグ部ですが、残念ながら日本の法令(電気用品安全法)に 適合していないので
(PSE マークがついていない) 日本国内で使用する場合は、コンセントに直挿しせず、 プラグ部を取り外して、日本国内で販売された電源ケーブル(メガネ型 PSE付き)で接続してください。 法令については筆者もよく分かりませんので、自己責任でお願いします
2.日本での入手方法
(1) 購入先
米国からの個人輸入になります。
以前は輸入代行業者や、日本OEM版の玄柴があったのですが 今は ( 2011/4/2筆者検索 ) 輸入代行する日本業者はなく、 直接メーカに発注するしかないようです。
価格は、日本円で¥7,859 + 送料¥3,596 (2013/6/27現在)です。
発注方法については、GuruplugDisplayで遊ぼうのこーな を参照してください
3.別途用意する持ち物
(1) 母艦パソコン
Windowsパソコンでいいので用意してください。(Macも可能) Linuxが走っていればなお良しです。
(2) 電源ケーブル
日本国内仕様のメガネ型電源ケーブル ( たとえばこちら )
(3) 端末エミュレータソフト
筆者は普段Puttyを 使っています。別の端末ソフトでもOKです
------ここからは必須ではないものの、筆者推奨品です
(4) USBケーブル
コンソール接続用ミニUSB-Bタイプは別途用意することを薦めます 付属品のケーブルは抜けやすいので
4.NANDフラッシュからテスト起動
(1) コンソールUSBのドライバーインストール
SheevaPlug のコンソールはUSBになっており、 まずはそのドライバーを入れます。 入れ方は以下。
- ① プラグコンピュータ開発元の plugcomputer.org のサイトに行く
- ② 上部の「resources」のタグから「downloads」を選択
- ③ 右下の「PlugComputer Basic」の欄の「Tools/Drivers」をクリックしてください。求める各種ファイルがあります
- ④ 一番下の「PlugComputer Software & Design Information - Revision 1.2」欄の下から3行目の SheevaPlug_Host_SWsupportPackageWindowsHost1.2.zip がUSBドライバなので取得し、展開しておく
- ⑤ 母艦とSheevaPlugをminiB-USBケーブルでつなぐ
- ⑥ SheevaPlug の電源を入れて母艦に認識されるとドライバの場所をきいてくるので、先ほど展開した④のドライバの場所を入力
- ⑦ そのとき、COMの何番に紐づいたかはメモして置いてください
(2) シリアル回線の設定
母艦とSheebaPlug をminiB-USBケーブルで接続し、 端末エミュレータを起動して下さい。
通信条件は、115200bps、データ長8ビット、ストップビット1、パリティ無し フロー制御無しです。
(3) テスト起動
電源をつなぐと起動します。 ユーザー名root、パスワードnosoup4uでログインしてください。
そのまま使い続けてもよいのですが、内蔵NANDフラッシュは消耗品で 交換できないので後述する方法で、
SDカードかUSBからのブートに変更することを勧めます
一通り触ったら、shutdown -r now してください。
(4) 環境変数のメモ
再起動したら再びubootが通常起動のカウントダウンを始めます
ここでそれを一旦とめて(何かキーを叩く)、printenvコマンドを入れて 表示される各変数の値をログに
記録しておくことを薦めます。
5.U-boot の更新
最近 Sheeva を買われた方のサイトを見ると、2年前に騒がれていたバグ付きubootがいまだに入っているとのこと。新規に買われた方はubootの以下のコマンドでubootのバージョンを確認してください
Marvell>> version
U-Boot 2012.04.01 (Jun 01 2012 - 02:27:06)
Marvell-Sheevaplug - eSATA - SD/MMC
gcc (Debian 4.6.3-5) 4.6.3
GNU ld (GNU Binutils for Debian) 2.22
上記は筆者環境の例ですが、2009年などの古いバージョンの方はこちらのページ等のやり方で更新ください。
tftp サーバー立てが、よく分からない方は、次の手順でも更新できます
① 上記3章で示したもののほかに、USBメモリかSDHCカードで中身消しても良いものを用意してください
用意したメディアをFAT32でフォーマットします(NTFS不可)
② 最新のU-Bootバイナリをこちらからダウンロードし、上記メディアに書き込み
③ SheevaPlug の電源を入れます。OSはシャットダウンし、U-bootコマンド待ちの状態にします
U-boot環境変数は次の手順で初期化されるので、必要な人は現状の値をメモしておいてください
④ 上記メディアをSheevaPlugに差込、U-bootに以下のコマンドを入れます
(SDHC カードの場合)
mmcinit
fatload mmc 0:1 0x0800000 u-boot.kwb
nand erase 0x0 0x60000
nand write 0x0800000 0x0 0x60000
(USBメモリの場合)
usb start
fatload usb 0:1 0x0800000 u-boot.kwb
nand erase 0x0 0x60000
nand write 0x0800000 0x0 0x60000
⑤ reset コマンドを入力、再起動して、再びU-boot コマンド待ちにします
⑥ イーサネットのMACアドレス設定が初期化されてしまうので以下再設定。
xx:xx:xx のところにSheevaの裏に記載されている自分の MAC アドレスを書いてください
setenv ethaddr 00:50:43:xx:xx:xx
saveenv
⑦ SheevaPlug+や、玄柴など E-Sata 端子を持つSheevaをお持ちの方はさらに以下設定
setenv machid a76
saveenv
6.復旧再インストール手順
この章では、不幸にも起動せず、壊れたレンガと化した、Sheevaplug を復旧再インストールするツール、SheevaPlugInstaller を紹介します
(0) このツールで出来ること
このツールでは JTAG機能を用いて、SheevaPlug を工場出荷状態に戻すことが出来ます。 具体的には、
① NAND内のu-bootを更新します。
② NAND内のu-bootの環境変数を工場出荷状態に戻します。
③ NAND内のUbuntuを再インストールします。
(1) 用意するもの
上記3章で示したもののほかに、USBメモリ(中身消しても良いもの)も用意してください
(2) 母艦の準備
ここでは、母艦はWindows マシンとします。
① 必要なファイルの入手
SheevaPlugInstaller を
ここからダウンロードします
ありかは、公式サイト→Downloads → Plug Computer Basic → Tools / Driversです
さらに、LibUSBドライバを
ここからダウンロードしてください。
いくつかファイルがありますが
フィルタドライバlibusb-win32-devel-filter-?.?.?.exe を落としてください
② ドライバのインストール
母艦に4章で示した、コンソールUSBドライバをインストールしておいてください
フィルタドライバlibusb-win32-devel-filter-?.?.?.exe を実行しインストールしてください
③ 上記USBメモリをFAT32 でフォーマットしてください (NTFS不可)
(3) 母艦での作業
① 上記SheevaplugInstallerを解凍展開ください。
ここでは D:\sheevaplug-installer-v1.0 に展開した例を書きます
② U-Boot環境設定ファイル( MAC アドレス )を設定する
D:\sheevaplug-installer-v1.0\uboot\uboot-envの下の、uboot-mmc-custum.txt と
uboot-nand-custum.txt を編集します。
ethaddr 00:50:43:xx:xx:xx と11行あたりに書いてあります。
各自のSheevaの裏に記載されている自分の MAC アドレスに変更してください
③ USBにデータを展開
D:\sheevaplug-installer-v1.0\installer 配下のファイルをUSBメモリに展開
uImage 等のファイルをUSBメモリのルートディレクトリにコピーします
④ 母艦からSheevaPlugを切り離し
もし、SheevaPlug と母艦をUSBコンソールで接続している場合は、切断してください
(4) SheevaPlugでの作業
① 母艦とUSBケーブルを接続し、上記USBメモリを挿し、電源を入れてください。
(5) 再び母艦での作業
① コマンドプロンプトを起動します
② D:\sheevaplug-installer-v1.0に移動
③ 以下コマンドを実行
(a) runme.exe nand :nand にubuntuを書き込む場合
(b) runme.exe mmc :SDカード にubuntuを書き込む場合
④ コマンドプロンプトで以下のメッセージが2つとも出たらU-boot書込完了です
(a) wrote file uboot-env.bin to NAND flash 0 up to offset 0x000c0000 in ??.??s」
(b) wrote file uboot.bin to NAND flash 0 up to offset 0x00074000 in ???.??s
上記メッセージが出れば、runme.exe はお役御免です。コントーロールCで止めてください。
裏では、引き続きubuntu 書込みが継続されています
⑤ USBケーブルを一度抜き差しし、puttyなど端末ソフトでコンソール接続しなおしてください
ubuntu の書込みログが流れるはず。再起動がかかり、ログイン画面まで行けば完了です。
ユーザー名root、パスワードnosoup4uでログインしてください。
(6) u-boot などのバージョン変更
なお、上記(3)の後で
① D:\sheevaplug-installer-v1.0\uboot\uboot.bin を自分の好みのバージョンのU-boot に置換できます。
② USBに書き込んだカーネルuImage や、rootfs.tar.gz も同様に置換、変更出来ます
7.Debian Wheezy で遊ぼう
(0) はじめに
この章では、2013年5月4日にリリースされた Debian の “Wheezy” をインストールします。
NAND に初期インストールされている Ubuntu を使い続けてもいいのですが、
① NANDは交換できない消耗品なので、温存してOSは別のメディアにインストールしたい。
② Ubuntu は SheevaPlug の CPU ARMv6 への対応を止めていて、新しいバージョンが入手できない。
ので、OSは新しくインストールしなおすことを薦めます。ちなみに、元ネタは、こちら。
(1) 用意するもの
上記3章で示したもののほかに、OSをインストールするメディア、SDHCフルサイズカード、もしくはUSBメモリで、4GB以上、中身消しても良いものも用意してください
u-bootが古いと動かないので、前章5.にてu-bootを更新し u-boot 2011.12-3より新しくしてください
(2) DebianInstallerの起動
① 上記で用意したメディアをFAT32でフォーマットします(NTFS不可)
② ここから インストーラの uImage と uInitrd をダウンロードして、インストールメディアに書き込み
③ SheevaPlug の電源を入れます。OSはシャットダウンし、U-bootコマンド待ちの状態にします
④ 必要なファイルをネットから落とすインストーラのため、SheevaPlug にネットワークをつないでおきます
⑤ 上記メディアをSheevaPlugに差込、U-bootに以下のコマンドを入れます
(SDHC カードの場合)
mmc init
fatload mmc 0:1 0x00800000 /uImage
fatload mmc 0:1 0x01100000 /uInitrd
(USBメモリの場合)
usb start
fatload usb 0:1 0x00800000 /uImage
fatload usb 0:1 0x01100000 /uInitrd
(上記のあと、SDHC,USBメモリ共通で以下のコマンドを入力)
setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
bootm 0x00800000 0x01100000
⑥ インストーラが起動しますので、質問に適宜答えて進めてください。
インストーラが繰り出す質問で Select a language → 言語は “ C ” を選択してください。
(4) U-boot 環境変数設定
インストールが完了したら、再起動し、U-bootのコマンド待ちの状態にしてください
立ち上げに必要な環境変数を以下のように実施してください
(SDHC カードの場合)
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_mmc 'mmc init; ext2load mmc 0:1 0x00800000 /uImage; ext2load mmc 0:1 0x01100000 /uInitrd'
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_mmc; bootm 0x00800000 0x01100000'
saveenv
(USBメモリの場合)
setenv bootargs_console console=ttyS0,115200
setenv bootcmd_usb 'usb start; ext2load usb 0:1 0x00800000 /uImage; ext2load usb 0:1 0x01100000 /uInitrd'
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x00800000 0x01100000'
saveenv
reset コマンドで再立ち上げすると、Debian が起動します。
(5) SheevaPlug の初期設定
① 内蔵イーサネットの設定
内蔵イーサは eth0 で認識。 デフォルトではDHCPに設定されています
お好みで /etc/network/interfaces を修正し固定IPに設定します。
② 日本語ローケールの設定
以下のコマンドを実行し、ja_JP.UTF-8とja_JP.EUC-JPを追加する。
お好みでどちらかをデフォルトに設定
$ sudo dpkg-reconfigure locales
③ パッケージのアップデートと 最小限必要と思われるパッケージ( sudo と ssh )のインストール
# aptitude update
# aptitude safe-upgrade
# aptitude install ssh sudo
8.Fedora17 で遊ぼう
(0) はじめに
この章では、2012年5月29日にリリースされたFedora17 をインストールします。 残念ながら、Fedora18は、筆者のSheeva では起動できませんでした。 ちなみに元ねたはこちら
(1) 母艦の準備
上記3章で示したもののほかに、OSをインストールするメディア、SDHCフルサイズカードを用意してください。
また、SDHCカードアダプタをもつLinuxマシンを用意してください。 筆者はVMWare 上 で Ubuntu を用意
筆者のSDHCカードアダプタは /dev/sdb で認識されます。以後説明で必要に応じ読み替えてください
(2) 母艦での作業
① 中身が丸ごと消えてもいいSDHCフルサイズカードを用意し、アダプタに接続
次の手順で、全パーティションが消されて一から作成されます。mountされていたら umount ください。
② 適当な作業ディレクトリに移動し、以下のコマンドを実行してください
(プレビルドされたイメージ取得)
$ wget http://download.fedoraproject.org/pub/fedora-secondary/releases/17/Images/arm/Fedora-17-arm-kirkwood-mmcblk0.img.xz
(SDへの書込)
$ sudo su
# xzcat Fedora-17-arm-kirkwood-mmcblk0.img.xz > /dev/sdb
# sync
(3) U-boot 環境変数設定
上記書き込みが完了したら、母艦とsheevaをUSBケーブルを接続し、上記SDHCカードを挿し、電源を入れて、
U-bootのコマンド待ちの状態にしてください。 立ち上げに必要な環境変数を以下のように実施してください
setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootdelay=3'
setenv loadInitrd 'fatload mmc 0:1 0x7400000 uInitrd-kirkwood'
setenv loadImage 'fatload mmc 0:1 0x6400000 uImage-kirkwood'
setenv bootcmd 'mmc init; $(loadImage); $(loadInitrd) ; bootm 0x6400000 0x7400000'
saveenv
reset コマンドで再立ち上げすると、Fedora18 が起動します。
(4) SheevaPlug の初期設定
① 初期ログイン
初期ユーザーは「root」、初期パスワードは「fedoraarm」です。 ログイン後すぐにパスワード修正ください。
② 内蔵イーサネットの設定
内蔵イーサは筆者の環境でDHCPでのIPアドレス取得に失敗した。
/etc/sysconfig/network-scripts/ifcfg-eth0 をたとえば以下のようにし固定IPに設定します。
DEVICE=eth0
BROADCAST=192.168.11.255
IPADDR=192.168.11.10
NETMASK=255.255.255.0
NETWORK=192.168.11.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.11.1
DNS1=192.168.11.1
③ パッケージの更新
# yum -y update
9.Arch Linuxで遊ぼう
Arch Linuxはシンプルな基本構成とと強力なパッケージ管理システムが評価されて いるディストリビューションで、各種ARMガジェットに対応しています。 ためしにインス>トールしてみます。ちなみに元ネタは公式サイト
(1) microSDHCのパーティション切り
本来なら、本家Wiki に書いてあるSheevaplugInstaller を応用したやり方でインストールしたいのですが、筆者の環境で動かないので、以下のように手動で書き込みます
やり方はBeagleboardでの記事と基本的に同じなのであわせて読んでください。 まずは、SDHCにパーティションを2つ(boot用とrootfs用) 切ります。 ただし、先頭のブートパーティションは Linuxパーティション にしてください
ichi@ubuntu-vm:~$ sudo fdisk /dev/sdb
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本パーティション (1-4)
[ p ]
パーティション番号 (1-4): [ 1 ]
最初 シリンダ (1-1021, 初期値 1): [ リターンを押す ]
初期値 1 を使います
Last シリンダ, +シリンダ数 or +size(K,M,G) (1-1021, 初期値 1021): [ +128M ]
コマンド (m でヘルプ): [ a ]
パーティション番号 (1-4): [ 1 ]
コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本パーティション (1-4)
[ p ]
パーティション番号 (1-4): [ 2 ]
最初 シリンダ (19-1021, 初期値 19): [ リターンを押す ]
初期値 19 を使います
Last シリンダ, +シリンダ数 or +size(K,M,G) (19-1021, 初期値 1021): [ リターン を押す ]
初期値 1021 を使います
コマンド (m でヘルプ): [ w ] ※入力箇所をカギ括弧で強調しています
(2) microSDHCのフォーマット
先頭パーティションは ext2 で、第2パーティションは ext3 でフォーマットします
ichi@ubuntu-vm:~$ sudo mkfs.ext2 -L boot /dev/sdb1
ichi@ubuntu-vm:~$ sudo mkfs.ext3 -L rootfs /dev/sdb2
(3) bootパーティションの中身書込
Arch linux 公式サイトから SheevaplugInstaller をダウンロードしますが、うまく動かないので、手動でカーネルだけ拾い出してSDHCにコピーします
ichi@ubuntu-vm:~$ wget http://archlinuxarm.org/mirror/sheeva/sheevaplug-installer-v1.1-lite.tar.gz
ichi@ubuntu-vm:~$ tar xvzf sheevaplug-installer-v1.1-lite.tar.gz
ichi@ubuntu-vm:~$ cd sheevaplug-installer-v1.1-lite/installer
ichi@ubuntu-vm:~$ sudo mount /dev/sdb1 /mnt/sd (マウントポイントは各自の環境に合せ読替ください)
ichi@ubuntu-vm:~$ sudo cp * /mnt/sd
ichi@ubuntu-vm:~$ sync
ichi@ubuntu-vm:~$ sudo umount /dev/sdb1
(4) rootfsパーティションの中身書込
Arch linux 公式サイトからルートパーティションの中身をダウンロードし書き込>み
ichi@ubuntu-vm:~$ wget http://archlinuxarm.org/os/ArchLinuxARM-armv5te-latest.tar.gz
ichi@ubuntu-vm:~$ sudo mount /dev/sdb2 /mnt/sd (マウントポイントは各自の環境に合せ読替ください)
ichi@ubuntu-vm:~$ sudo tar xvpzf ArchLinuxARM-armv5te-latest.tar.gz -C /mnt/sd
ichi@ubuntu-vm:~$ sync
ichi@ubuntu-vm:~$ sudo umount /dev/sdb2
(5) U-boot 環境変数設定
上記書き込みが完了したら、母艦とsheevaをUSBケーブルを接続し、上記SDHCカードを挿し、電源を入れて、
U-bootのコマンド待ちの状態にしてください。 立ち上げに必要な環境変数を以下のように実施してください
setenv bootargs 'console=ttyS0,115200 root=/dev/mmcblk0p2 rootdelay=3'
setenv arcNumber 2097
setenv mainlineLinux 'yes'
setenv bootcmd 'mmc init; ext2load mmc 0:1 0x0800000 uImage; bootm 0x00800000'
saveenv
reset コマンドで再立ち上げすると、Arch Linux が起動します。
(6) SheevaPlug の初期設定
① 初期ユーザー:root 、初期パスワード: root です。なるべく早く変更してください
② 日本人向け初期設定として /etc/rc.confの以下の行を変更します
LOCALE="ja_JP.utf8"
TIMEZONE="Asia/Tokyo"
KEYMAP="jp106"
/etc/locale.gen に、以下の行を追加し、locale-gen コマンドを実行してください
ja_JP.UTF-8 UTF-8
ja_JP.EUC-JP EUC-JP
③ ネットワークIPを固定にしたい方は /etc/rc.confの以下の行を変更します
HOSTNAME="sheeva" (お好みのHOST名をセット)
interface=eth0
address=192.168.0.2 (この行以降のIPアドレスを空白にするとDHCPから取得になりま>す)
netmask=255.255.255.0
broadcast=192.168.0.255
gateway=192.168.0.1
/etc/hosts に、以下の行を追加し先ほどセットした自分のホスト名のIPを登録します
192.168.0.2 sheeva sheeva.ichmy.0t0.jp
/etc/resolv.conf に、以下の行を追加し自分のネームサーバーを登録します
nameserver 192.168.0.1
④ パッケージ管理システムを以下のコマンドで初期化し、パッケージを最新にします
# pacman -Sy (最新のソースリストと同期)
# pacman -Su (既存の環境のアップデート)
11.FreeBSD/ARM で遊ぼう
(0) はじめに
2012年12月31日にFreeBSDの新Ver 9.1-Releaseがリリースされました。 これを記念し、FreeBSD 9Release (ARM版) をインストールします。
FreeBSD は残念ながらNANDフラッシュ、SDカードに未対応なので、USBメモリにインストールします
(1) 用意するもの
上記3章で示したもののほかに、OSをインストールするUSBメモリで、4GB以上、中身消しても良いものも用意してください
FreeBSD 9Release が走っている母艦を用意してください。(筆者はVMware上で用意)
(2) 母艦にてソースの取得
cvsup を用いてコースコードを取得します
① cvsup をまだインストールされていない方は、パッケージ devel/cvsup-without-gui をインストール下さい。
② 9Release のソースを取得するためのsupfile を以下のように作成 /usr/local/etc/cvsup/supfile に置きます
*default host=cvsup.jp.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_9
*default delete use-rel-suffix
*default compress
src-all
③ 以下コマンド実行で、/usr/src に ソースが展開されます
# cvsup /usr/local/etc/cvsup/supfile
(3) 母艦にてカーネルコンフィグの設定
/usr/src/sys/arm/conf/SHEEVAPLUG が sheevaplug用 カーネルコンフィグ の初期ファイルです。
これを cp SHEEVAPLUG SHEEVAICHMY などとコピーして使います
筆者は以下のように修正しましたが、各自の環境に合わせてください
(コメントアウトした行、ネットワークブートは今回しないため)
#options NFSCL #New Network Filesystem Client
#options NFSLOCKD #Network Lock Manager
#options NFS_ROOT #NFS usable as /, requires NFSCLIENT
#options BOOTP
#options BOOTP_NFSROOT
#options BOOTP_NFSV3
#options BOOTP_WIRED_TO=mge0
#options NO_SWAPPING (←筆者はSWAPを用意したため、SWAP不要時はそのまま)
(内容修正した行)
ident SHEEVAICHMY ← カーネルの名前です。気に入った名前を付けてください
# Root fs on USB device
options ROOTDEVNAME=\"ufs:/dev/da0s2a\" ← カーネルが掴みに行く"/"の位置
(追加した行、玄柴やSheevaPlug+ ではE-SATAガ使えます)
# SATA
device ata
device atadisk
(4) 母艦にてコンパイル
以下コマンド実行
# cd /usr/src
# export TARGET_ARCH=arm
# export CROSS_BUILD_TESTING=yes
# make buildworld TARGET_ARCH=arm -DWITH_FDT
# make buildkernel TARGET_ARCH=arm KERNCONF=SHEEVAICHMY
最近のカーネルコンフィグでは FDT が有効になっているので、ユーザーランドもそれに対応して -DWITH_FDT で作成します。
また、KERNCONF= の先は、先ほど作成したカーネルコンフィグファイル名を指定してください
(5) 母艦にてUSBパーティション切り
以下コマンド実行、筆者のUSBメモリはda1として認識されています。
# gpart destroy da1
# gpart create -s MBR da1
# gpart add -s 32M -t freebsd da1
# gpart add -t freebsd da1
# bsdlabel -w /dev/da1s2
# bsdlabel -e /dev/da1s2
筆者のUSBメモリは15Gを用意し、/=512M、swap=1536M、/var=2048M、/tmp=1024M、/usr=残り としましたので、bsdlabelはまず以下のように入力
# /dev/da1s2:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 512M * 4.2BSD 0 0
b: 1536M * swap 0 0
c: 31260600 0 unused 0 0 # "raw" part, don't edit
d: 2048M * 4.2BSD 0 0
e: 1024M * 4.2BSD 0 0
その後、残りの/usrも切り、最終的に以下のようになりました。
# /dev/da1s2:
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 1048576 16 4.2BSD 0 0 0
b: 3145728 1048592 swap
c: 31260600 0 unused 0 0 # "raw" part, don't edit
d: 4194304 4194320 4.2BSD 0 0 0
e: 2097152 8388624 4.2BSD 0 0 0
f: 20774824 10485776 4.2BSD 0 0 0
ご自身の環境に合わせて切ってください。編集せず初期設定のままでも問題ありません
swap はあとでファイルにでも取れますし、全容量"/"にしても問題ありません
続いて以下のようにフォーマットします
# newfs_msdos /dev/da1s1 (第1パーティションはFAT でフォーマットしてください。u-bootが読めるように)
# newfs -n da1s2a (da1s2d da1s2e da1s2fも同様にフォーマットしてください)
そういう時はGNOMEからログオフしてSSHからリモートログインして作業すると解消します。
(6) 母艦にてUSBにインストール
① カーネルのインストール
以下のコマンドを実行。SHEEVAICHMYのところは、ご自身のカーネル名で読み替えてください
# mount -t msdosfs /dev/da1s1 /mnt
# cp /usr/obj/arm.arm/usr/src/sys/SHEEVAICHMY/kernel.bin /mnt
# umount /mnt
② ユーザーランドのインストール
まず、ユーザーランドのインストールをするのに、auditdistd 用のユーザーを作らなければならないらしい
まだ、auditdistd というユーザーを作っておられない方は # vipw コマンドで/etc/passwd に以下の行を追加
auditdistd:*:78:77::0:0:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin
以下のコマンドを実行し、USBパーティションをマウント(2行目以降は必要な方のみ)
# mount /dev/da1s2a /mnt
# mkdir /mnt/var; mount /dev/da1s2d /mnt/var
# mkdir /mnt/tmp; mount /dev/da1s2e /mnt/tmp
# mkdir /mnt/usr; mount /dev/da1s2f /mnt/usr
次に /etc 周りを設定
# cd /usr/src
# export DESTDIR=/mnt
# mergemaster -p
ここで聞かれる質問は、さいしょの2つは「i」を押して/etc/groupと/etc/master.passwdを新しいファイルで
上書きを選択し、3つの質問には「y」を押してpasswdファイルを更新を選択します。
次にユーザーランドのインストール
# make installworld TARGET_ARCH=arm
# make distrib-dirs TARGET_ARCH=arm
# make distribution TARGET_ARCH=arm
③ 初期設定
(a) /mnt/etc/rc.conf をたとえば以下のように設定
hostname="ichmy.0t0.jp"
ifconfig_mge0="DHCP"
defaultrouter="192.168.24.1"
sshd_enable="YES"
(b) /mnt/etc/fstab をたとえば以下のように設定
# Device Mountpoint FStype Options Dump Pass#
/dev/da0s2b none swap sw 0 0
/dev/da0s2a / ufs rw,noclusterr,noclusterw 0 0
/dev/da0s2d /var ufs rw,noclusterr,noclusterw 0 0
/dev/da0s2e /tmp ufs rw,noclusterr,noclusterw 0 0
/dev/da0s2f /usr ufs rw,noclusterr,noclusterw 0 0
最後にすべて umount して、USBメモリを抜いてください
(7) SheevaPlug 起動
① 起動に必要な u-boot の環境変数の設定
立ち上げに必要な環境変数を以下のように実施してください
setenv bootcmd 'usb start;fatload usb 0:1 900000 kernel.bin;go 900000'
saveenv
② 起動
リセットして起動。 初期ユーザはroot パスワードなしです。起動したらすぐにパスワード設定してください
(8) Ports のアップデート
FreeBSD(ARM版) はまだ正式対応に至っていないので、パッケージがありません
かなり時間が掛かりますが、各アプリケーションはportsを使って自分でコンパイルします
1回コンパイルすれば、パッケージが手元に残りますので、2回目以降はそれを使います
まず、以下の行を /etc/portsnap.conf に追加して、不要なportsを指定します
REFUSE arabic chinese french german hebrew hungarian
REFUSE korean polish portuguese russian ukrainian vietnamese
REFUSE x11 x11-clocks x11-fm x11-fonts
REFUSE x11-servers x11-themes x11-toolkits x11-wm
続いて以下実行
# portsnap fetch
# portsnap extract (2回目以降から不要)
# portsnap update
# mkdir /usr/ports/packages (これも2回目以降から不要)
これで /usr/ports 以下にポーツが展開されます。あとの使い方はPCと同じなので省略
(9) FreeBSD/ARM での Ports の注意点(バッドノウハウ)
残念なことに、いくつかのPorts は ARM版ではコンパイルエラーが出ます
筆者の環境で発生したのは参考までに
① mysql 5.5.20 : お手上げ。
12.参考にさせていただいたサイト
(1) 開発元公式サイト plugcomputer.org
(2) Martin Michlmayr 様サイト Debian HOWTOs
(3) Papa様ブログ 「パパ日記」 旧ブログでFreeBSD/ARM のコンパイル等を解説されておられましたが
旧ブログの内容は故障で消失されたとのこと
(4) might様ブログ 俺日記
ichmy本家サイト
OS伝説で遊ぼうのこーなー
-
OS伝説で遊ぼうのこーなー
- Win11を無料で遊ぶこーな
- Win7で遊ぼうのこーな
- WinXPで遊ぼうのこーな
- Win2Kで遊ぼうのこーな
- Win98で遊ぼうのこーな
- Win95で遊ぼうのこーな
- Win3.1で遊ぼうのこーな
- 日本語DOS/Vで遊ぼうのこーな
- Solarisで遊ぼうのこーな
- FreeBSDで遊ぼうのこーな
- NetBSDで遊ぼうのこーな
- Linuxで遊ぼうのこーな
- Androidで遊ぼうのこーな
- 仮想化ソフトを比較するこーな
- VirtualBOXで遊ぼうのこーな
- VMwarePlayerで遊ぼうのこな
- Hyper-Vで遊ぼうのこーな
- QEMUで遊ぼうのこーな
- Parallelsで遊ぼうのこーな
- VMware fusionで遊ぼうのこーな
- UTMで遊ぼうのこーな
- Cygwinで遊ぼうのこーな
- VirtualPCで遊ぼうのこな(跡地)
-- OS伝説の紹介
-- 仮想化ソフト紹介