Guruplug Server Standard で遊ぼうのこーなー
このこーなでは、最近になって日本の代理店が技適付きで売り出した Guruplug Server Standard で遊びます
また、ちょっとした電子工作(圧着ケーブルを使って信号引き出し、半田づけは無し)も行います
なお、同じ Guruplug でも画像出力つきのモデルについては、GuruplugDisplayで遊ぼうのこーなを参照。
SOCに直結されているので、不注意で変な電圧に接触させると、致命的な故障につながります。
当サイトの情報を使用することにより生ずる直接または間接のいかなる種類の損失に 対しても、 当サイトは責任を負いかねます。
これらのリスクを自己責任で対処できる方のみ、以降の記事をご覧下さい
0.目次
1.Guruplug Server Standard とは
(1) Guruplug Server Standard とは
Guruplug Server Standard とは Marvell社が提唱する プラグ・コンピューター の1種の超小型サーバです。
プラグ・コンピューターは、電源アダプターのような形状をしており、 コンセントに挿すだけでどこでもサーバー設置できることがコンセプトの製品で、 10cm角の筐体の中にパソコンに必要な機能が一通りそろっており linux で動かすことが可能です。
プラグ・コンピューターは、他にも各種発売されていますが、 ここでは Guruplug Server Standard を紹介します
なお、同じ Guruplug でも画像出力つきのモデルについては、GuruplugDisplayで遊ぼうのこーなを参照。
機能 | 内容 |
---|---|
CPU | Marvell 88F6281 1.2GHz (ARMv5TE) |
主記憶 | 512MB RAM |
補助記憶 | 512MB NAND FLASH内蔵 / USB (注:SDカードアダプタが無い) |
ネット | ギガビットイーサ ×1 |
無線 | Bluetooth 2.1, Wi-Fi 802.11 b/g |
USB | 2ポート |
UART | 4ピンハーフピッチ(1.25mm)コネクタ、3.3V |
JTAG | 8ピンハーフピッチコネクタ |
電源 | AC電源(100~240V/50~60Hz) |
サイズ | 95x65x48.5mm |
(2) 日本での入手方法
内蔵の無線機器を合法的に使うには、技適証明を取得した代理店((株)ジェイエスピー)から購入下さい。
無線が不要のかたはGuruplugDisplayで遊ぼうのこーな を参考に米国から直輸入すれば安く入手できますが、そのような方には本機種ではなく、SheevaPlug など他機種をお勧めします
(3) JTAG って要るの?
Guruplug Server Standard の標準構成では、残念ながらu-bootにつながるコンソールが無いので、そのままではOSの乗せ換えが出来ません。
JTAGがあれば、OSの乗せ換えどころか、u-boot さえ動かなくなった機器を正常な状態に戻すことが出来るのですが、そこまでの機能が必要でしょうか?
本サイトではJTAGなしでシリアルコンソールにつなぐ方法を以下紹介しますが、多少のリスクと工具の投資が要ります。 まとめると
① OS乗せ換えに興味が無い → JTAG不要
② 圧着なんて面倒、純正品なら安心、最悪の状況にも備えたい → JTAG買ってください
③ 多少のリスクは敢えてとる → JTAG不要
2.まずは 動作確認
購入したらまずは、動作確認してください。って言っても、電源とネットワークケーブルをつなぐだけです。
初期ユーザー名「root」、初期パスワードは「nosoup4u」です。
ただ、guruplugのIPアドレスはDHCP で現時点で固定困難なので、接続先のIPがよく分からないが
ルーターの払出IPログを読む等で調べて、SSHでログインしてください
この時点で無線LANの親機になってますので使ってみてください
3.シリアルコンソールを繋ごう
本機種は残念ながら標準のままではコンソールにアクセスできません。コンソールにアクセスできないのではOSを乗せ換えて遊べません。JTAGを買えばいいのですが7千円も追加で出すのも癪なので、アダプタをつなぎこむケーブルを自作して遊びます。
(1) 用意する持ち物
ここでは端子からシリアル信号を取り出すので多少の工作をしますが、半田コテは使わず、圧着コネクタを用います
① USB-TTLシリアルコンバータ(3.3V) ( 筆者例:FTDI社製)
一般のシリアルと違い組み込み系では電圧が3.3Vのものが
よく使われます。 3.3V用のシリアル通信機材を用意してください。
右写真の筆者機材の例では端子が2.54mmピッチメスコネクタに
なっていて直接繋がらないので、以下でコネクタ変換をします
※ よく似た5V用品もあり、電圧を間違えると重大な故障
② 工具 : 精密圧着ペンチ( 筆者例:エンジニア社製PA-09)、
ニッパ、ピンセット
③ 部品 : Guruplug側コネクタはハーフピッチ(1.25mm)のものです
molex51021 の4極と適合ピンを買えばいいのですが、
ハーフピッチの圧着には熟練のワザが要るので、
筆者はこちらの出来合い品を買いました。
シリアルコンバータ側コネクタは通常の2.54mmピッチのものを使用
(筆者例:QIコネクタ6Pと適合ピン) 注:QIコネクタは2550コネクタとも言います。
(2) 変換コネクタの作成
上記部品を使って、変換コネクタを作ります。シリアルコンバータ側の圧着は デジットさんのブログを参照し作業ください
右上の図2にGuruplug側コネクタの信号順を記載しますので、それぞれGNDは→GNDに、RxDは→TxDに、
TxDは→RxDにとクロスに繋げばOKです。
なお今回は3.3Vの端子は使用しないので間違って接続しないで下さい (筆者は根元から切り飛ばし)
(3) 通信接続
出来上がったコネクタをGuruplug の4ピンコネクタにつなぎます。コネクタには上下がありますので要確認またこのとき、かなり奥まできっちり入れ込む必要があるので、楊枝等で押し込んでください
筆者のWin7パソコンではシリアルコンバータは挿せば勝手にドライバ入り、COM3 として認識されました。
筆者のWin8パソコンではドライバ自動インストールに失敗しましたが、こちらからドライバを入手して
インストールすればOKでした。
通信条件は、115200bps、データ長8ビット、ストップビット1、パリティ無し フロー制御無しです。
通信に成功すると、U-bootの初期状態での環境変数のメモを取ることをお勧めします。
ちなみに、筆者機体の購入直後での環境変数と起動時のメッセージ例を リンク先にアップしています
(※) MACアドレス等、一部伏字にしています。ご了承ください
4.U-boot の更新
シリアル接続に成功し、debian 等のOSを別途インストールする方は、U-boot の更新をお勧めいたします。
ちなみに、この章の元ネタは、こちら
筆者が購入した直後の状態では U-bootのバージョンは以下のとうりでした
Marvell>> version
U-Boot 2010.03 (Oct 31 2011 - 15:23:58)
Marvell-GuruPlug
上記は筆者環境の例ですが、2011年3月以前のVer.の方は、以下の方法等でU-boot の更新を勧めます
① まず、U-bootで以下のコマンドで、Guruplugの MACアドレスの設定をメモします
Marvell>> print ethaddr
Marvell>> print eth1addr
② 中身消しても良いUSBメモリを用意してください
用意したメディアをFAT32でフォーマットします(NTFS不可)
③ U-Bootバイナリをこちらからダウンロードし、上記メディアに書き込みます
④ GuruPlug の電源を入れます。OSはシャットダウンし、U-bootコマンド待ちの状態にします
U-boot環境変数は次の手順で初期化されるので、必要な人は現状の値をメモしておいてください
⑤ 上記メディアを GuruPlugに差込、U-bootに以下のコマンドを入れます
Marvell>> usb start
Marvell>> fatload usb 0:1 0x0800000 u-boot.kwb
Marvell>> nand erase 0x0 0x60000
Marvell>> nand write 0x0800000 0x0 0x60000
⑥ reset コマンドを入力、再起動して、再びU-boot コマンド待ちにします
⑦ イーサネットのMACアドレス設定が初期化されてしまうので以下再設定。
xx:xx:xx のところに、先ほどメモした自分の MAC アドレスを書いてください
Marvell>> setenv ethaddr xx:xx:xx:xx:xx:xx
Marvell>> setenv eth1addr xx:xx:xx:xx:xx:xx
Marvell>> saveenv
5.rootfs のUSBへのコピーと各種初期設定
(0) はじめに
この章では、NAND に初期インストールされている Debian をUSBにコピーして使います
NANDは交換できない消耗品なので温存して、書き換えが頻繁なrootfs は別の メディアに移動します。
また、NANDは512MBしか容量が無いので'/'の容量拡張の目的もあります
ただし、カーネルは書き換え頻度少ないのでNAND上の現状品を流用します
(1) USBのパーティション切り
中身をすべて消していいUSBを用意してください。ここでは全エリアを1つのパーティションに切り直します。
① NAND からGuruplug を起動してください。
② USBを挿すとパーティションがあれば勝手にマウントされます。umount してください
出来れば事前にすべてのパーティションを消しておいてください
③ まず、全パーティションを消します。
# fdisk /dev/sda
Command (m for help): [ p ] ← パーティション表示
Disk /dev/sda: 3859 MB, 3859808256 bytes
119 heads, 62 sectors/track, 1021 cylinders
Units = cylinders of 7378 * 512 = 3777536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b25a3
Device Boot Start End Blocks Id System
/dev/sda1 * 1 28 103261 83 Linux
/dev/sda2 29 1021 3663177 83 Linux
Command (m for help): [ d ] ← パーティション削除
Partition number (1-4): [ 2 ]
Command (m for help): [ d ]
Selected partition 1 ※入力箇所をカギ括弧で強調しています
③ 以下のように単一パーティションを切ります。切り方はお好みで変えても可。
Command (m for help): n
Command action
e extended
p primary partition (1-4)
[ p ]
Partition number (1-4): [ 1 ]
First cylinder (1-1021, default 1): [リターンを押す]
Using default value 1
Last cylinder, +cylinders or +size(K,M,G) (1-1021, default 1021): [リターンを押す]
Using default value 1021
Command (m for help): [ w ] ← 変更をUSBに書き込む
The partition table has been altered! ※入力箇所をカギ括弧で強調しています
④ ext3 でフォーマットします
# mkfs.ext3 /dev/sda1
(2) NAND rootfs → USBへのコピー
USBをマウントして、ベタコピーです。 /dev は別途にコピー要です。
# mkdir /mnt/usb
# mount /dev/sda1 /mnt/usb
# cd /
# tar --one-file-system -cpf - . | tar xvp -C /mnt/usb
# cp -a /dev /mnt/usb
# sync
# umount /mnt/usb
(3) U-boot 環境変数設定
コピーが完了したら、再起動し、U-bootのコマンド待ちの状態に してください
立ち上げに必要な環境変数を以下のように設定してください
オリジナルと異なるのはx_bootargs_root だけですが、念のため他の起動に必要な変数もセットしておきます。
Marvell>> setenv x_bootargs_root 'root=/dev/sda1 rootfstype=ext3 rootdelay=10'
Marvell>> setenv bootcmd '${x_bootcmd_usb}; ${x_bootcmd_kernel}; setenv bootargs ${x_bootargs} ${x_bootargs_root}; bootm 0x6400000;'
Marvell>> setenv bootcmd_usb 'usb start'
Marvell>> setenv x_bootcmd_kernel 'nand read.e 0x6400000 0x100000 0x400000'
Marvell>> setenv x_bootargs 'console=ttyS0,115200'
Marvell>> saveenv
reset コマンドで再立ち上げすると、Debian が起動します。
(4) GuruPlug の初期設定
① 内蔵イーサネットの設定
内蔵イーサは eth0 で認識。 デフォルトではDHCPに設定されています
お好みで /etc/network/interfaces を修正し固定IPに設定します。
② root のパスワード修正、初期ユーザーを追加
# passwd
# adduser hoge
# visudo
② パッケージのアップデート、と筆者の機材ではなぜかsudo がうまく動かないので再インストール
# aptitude update
# aptitude safe-upgrade
# aptitude remove sudo
# aptitude install sudo
③ 日本語ローケールの設定
以下のコマンドを実行し、「All locales」のチェックは外して、ja_JP.UTF-8とja_JP.EUC-JPを追加する。
お好みでどちらかをデフォルトに設定。aptitude safe-upgrade より先にやった方がよかったかも知れない。
$ sudo dpkg-reconfigure locales
さらに以下のコマンドを実行し、タイムゾーンをAsia/Tokyoに設定する。
$ sudo dpkg-reconfigure tzdata
(5) GuruPlug の無線設定
ここでは、Guruplug を無線LAN のAP(基地局)にするための設定をします
購入直後から Guruplug は無線LANのAPになっていますが、セキュリティー無しなので設定します。
① SSIDの設定
/root の下にある init_setup.sh の11行目付近を以下のように修正。例題ではhoge-APにしてますが、気に入った名前を付けてください。
#SSID=guru-uAP-`ifconfig uap0 | awk -F ":" '/HWaddr/ {print $6$7}'`
SSID=hoge-AP
② セキュリティーの設定
同じく /root の下にある init_setup.sh の15行目付近に以下のような行を 元からある行の間に追加。
ifconfig uap0 192.168.1.1 up ← 元からある行
/usr/bin/uaputl sys_cfg_ssid $SSID ← 元からある行
/usr/bin/uaputl sys_cfg_protocol 32 ← 追加する
/usr/bin/uaputl sys_cfg_wpa_passphrase "hogehoge" ← 追加する
/usr/bin/uaputl sys_cfg_cipher 8 8 ← 追加する
/usr/bin/uaputl bss_start ← 元からある行
3行目の sys_cfg_protocol 32 はWPA2 を表します。WPAにする場合は 8
4行目の sys_cfg_wpa_passphrase はパスワードです
5行目の sys_cfg_cipher 8 8 は暗号化アルゴリズム「AES CCMP」を表します
それぞれ詳細が知りたい、ほかの設定に変えたい場合は以下コマンドで調べてください
# /usr/bin/uaputl sys_cfg_知りたいコマンド --help
③ 再起動してください。設定は再起動後に有効になります
6.Debian Wheezy で遊ぼう
(0) はじめに
この章では、2013年5月4日にリリースされた Debian の“Wheezy” をインストールします。
NAND に初期インストールされている Debian を使い続けてもいいのですが、
OSを新しくインストールしなおします。ちなみに、元ネタは、こちら。
なお、移植者のMartin Michlmayrさんは無線にはあまり興味を持たれていないので、無線ドライバは未導入。
また、本記事は基本的にSheevaplug用記事と同じものです。
(1) 用意するもの
① 母艦パソコン
② 端末エミュレータソフト
筆者は普段Puttyを
使っています。別の端末ソフトでもOKです
③ OSをインストールするメディア、USBメモリで、4GB以上、中身消しても良いものを用意してください
④ コンソール接続する装置、JTAG、または前章3、で作ったケーブル
⑤ u-bootが古いとインストーラーが動かないので、前章4.にてu-bootを更新してください
(2) DebianInstallerの起動
① 上記で用意したUSBをFAT32でフォーマットします(NTFS不可)
② ここから インストーラの uImage と uInitrd をダウンロードして、 インストールメディアに書き込み
③ Guruplug の電源を入れます。OSはシャットダウンし、U-bootコマンド 待ちの状態にします
④ 必要なファイルをネットから落とすインストーラのため、GuruPlug に ネットワークをつないでおきます
⑤ 上記メディアをGuruPlugに差込、U-bootに以下のコマンドを入れます
Marvell>> usb start
Marvell>> fatload usb 0:1 0x00800000 /uImage
Marvell>> fatload usb 0:1 0x01100000 /uInitrd
Marvell>> setenv bootargs console=ttyS0,115200n8 base-installer/initramfs-tools/driver-policy=most
Marvell>> bootm 0x00800000 0x01100000
⑥ インストーラが起動しますので、質問に適宜答えて進めてください。
インストーラが繰り出す質問で Select a language → 言語は “ C ” を 選択してください。
イーサネットは “ eth0 ” を 選択してください。
パーティションは、Guided - use entire disk でOKです。
(4) U-boot 環境変数設定
インストールが完了したら、再起動し、U-bootのコマンド待ちの状態に してください
立ち上げに必要な環境変数を以下のように設定してください
Marvell>> setenv bootargs_console console=ttyS0,115200
Marvell>> setenv bootcmd_usb 'usb start; ext2load usb 0:1 0x00800000 /uImage; ext2load usb 0:1 0x01100000 /uInitrd'
Marvell>> setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x00800000 0x01100000'
Marvell>> saveenv
reset コマンドで再立ち上げすると、Debian が起動します。
(5) GuruPlug の初期設定
前章5.と同じ内容なので省略。ただし、無線関係は設定出来ません。
7.Fedora18 で遊ぼう
(0) はじめに
この章では、2013年1月8日にリリースされた Fedora18をインストールします。 ちなみに元ねたはこちら
(1) 用意するもの
前章6のDebianと用意するものは同じです。
(2) 母艦での作業
① 中身が丸ごと消えてもいいUSBディスクを用意し、アダプタに接続
次の手順で、全パーティションが消されて一から作成されます。mountされていたら umount ください。
② 適当な作業ディレクトリに移動し、以下のコマンドを実行してください
(プレビルドされたイメージ取得)
$ wget http://fr2.rpmfind.net/linux/fedora-secondary/releases/18/Images/arm/Fedora-18-kirkwood-arm.img.xz
(USBへの書込)
$ sudo su
# xzcat Fedora-18-kirkwood-arm.img.xz > /dev/sdb
# sync
(3) U-boot 環境変数設定
上記書き込みが完了したら、母艦とguruplugをコンソール接続し、上記USBを挿し、電源を入れて、
U-bootのコマンド待ちの状態にしてください。 立ち上げに必要な環境変数を以下のように設定してください
Marvell>> set bootargs 'console=ttyS0,115200 root=LABEL=rootfs rootwait'
Marvell>> set loadInitrd 'ext2load usb 0:1 0x7400000 uInitrd'
Marvell>> set loadImage 'ext2load usb 0:1 0x6400000 uImage'
Marvell>> set bootcmd 'usb start; ${loadImage}; ${loadInitrd} ; bootm 0x6400000 0x7400000'
Marvell>> saveenv
reset コマンドで再立ち上げすると、Fedora18 が起動します。
筆者の環境で初回起動で失敗し、自動で再起動しましたが、2回目ではOKでした。
(4) GuruPlug の初期設定
① 初期ログイン
初期ユーザーは「root」、初期パスワードは「fedora」です。 ログイン後すぐにパスワード修正ください。
② パッケージの更新
# yum -y update
③ 内蔵イーサネットの設定
お好みで、/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
つづいて、以下コマンドを実行
# systemctl disable NetworkManager.service
# chkconfig network on
# reboot
メインメニュー
資格取るぞのこーなー
- 資格取るぞのこーなー
- 挑戦資格一覧
- 資格カレンダー - 申込締切順
- 資格カレンダー - 受験初日順
- 科目免除関連表 - 挑戦資格順
- 科目免除関連表 - 所持資格順
- 筆者の資格取得状況
- 筆者の当面の挑戦予定
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伝説の紹介
-- 仮想化ソフト紹介
ガジェットで遊ぼうのこーなー
- ガジェットで遊ぼうのこーなー
- Linuxガジェットを比較するこーな
- フィジカルで遊ぼうのこーなー
- Espressobinで遊ぼうのこーな
- ODROIDで遊ぼうのこーな
- ODROID-M1で遊ぼうのこーな
- ODROID-N2で遊ぼうのこーな
- Raspberry Pi5で遊ぼうのこーな
- Pine64 で遊ぼうのこーな
- Rock64pro で遊ぼうのこーな
- Quartz64 で遊ぼうのこーな
- BeagleBoneBlackで遊ぶこーな
- Radxa ROCK 5aで遊ぶこーな
- HummingBoard で遊ぶこーな
- OrangePi PC で遊ぼうのこーな
- TinkerBoard2Sで遊ぼうのこーな
- Mac-miniで遊ぼうのこーな
- PandaBoard ESで遊ぼうのこ-な
- Beagleboard-xMで遊ぼうのこーな
- Wandboardで遊ぼうのこーな
- CubieBoard3で遊ぼうのこーな
- pcDuino8 Unoで遊ぼうのこーな
- Trim-Sliceで遊ぼうのこーな
- GuruplugDisplayで遊ぼうのこーな
- PogoPlugで遊ぼうのこーな
- GuruplugStandardで遊ぼうのこな
- SheevaPlugで遊ぼうのこーな
-- 各ガジェット毎の紹介記事
-- ちょっと古め
-- 旧記事ですが参考まで