ArchLinuxをBeagleBoneBlackへインストール2

ArchLinuxをBeagleBoneBlackへインストールの続きです。

方法

ブートローダーのインストール

マウント

作業のために適当なディレクトリにマウントします。 すでにマウントしている場合は必要ありません。 今回は~/Document/SDとします。

                            $ mkdir -p ~/Document/SD
                            $ cd ~/Document
                        

マウントします。

                            $ sudo mount /dev/devicename1 ~/Document/SD
                        

ブートローダーのインストール(書き込み)

ddコマンドでブートローダーを書き込みます。devicenameは適宜置き換えてください。

                            sudo dd if=SD/boot/MLO of=/dev/devicename count=1 seek=1 conv=notrunc bs=128k
                            sudo dd if=SD/boot/u-boot.img of=/dev/devicename count=2 seek=1 conv=notrunc bs=384k
                        

アンマウントします。

                            sudo umount SD
                        

書き込みを完全に完了させるために、syncコマンド(メモリにバッファされたすべてのデータをディスクに書き込む)を実行します。

                            sync
                        

BeagleBoneBlack(ArchLinux)の起動へ続く

おわりに

以上でインストールは完了です。SDカードをパソコンから取り外してください。起動・設定については別の回で説明します。
わからないことなどがありましたら、ご質問だくさい。

2015/6/30

 

 

 

ArchLinuxをBeagleBoneBlackへインストール

目的

今回はBeagleBoneBlackについてです。 BeagleBoneBlackもRaspberryPi同様小さなマイコンボードですが、Debianの派生OSをGUIで動かせてしまうほどの力を持っています。 今回は、そのBeagleBoneBlackへ軽量でパワフルなArchLinuxをインストールしたいと思います。

方法

では、ここからはBeagleBoneBlackのセットアップです。

準備

まずは下記のものを用意してください

  1. BeagleBoneBlack (Rev C)
  2. マイクロSDカード
  3. LANケーブル
  4. MiniUSB-B to USB-A ケーブル
  5. マイクロSDカードへ書き込みができるLinuxマシン(マイクロSDアダプターの使用も可)

(1) BeagleBoneBlack には種類が複数ありますが、現在最新のRev Cを使用します。

(2) BeagleBoneBlackはRaspberryPi B+などと同様にマイクロSDカードを使用します。 私は、TOSHIBAの8Gを用意しました。 SDカードのデータはすべて消えますのでバックアップはしておいてください。
内部ストレージもありますが、インストールにはSDカードを使用しないとできません。 内部ストレージの方が早いので、SDで起動した後に内部ストレージへインストールをお勧めします。

(3) BeagleBoneBlackをネットワークに接続するためにLANケーブルを使用します。有線でないと設定できません。

(4) BeagleBoneBlackはMiniBで電源供給を行います。 RaspberryPiと異なり、設定をするとこのポートを使って(ネットワークケーブルを使用せずに)パソコンからログインできるようになります。

SDカードの準備

ここからは作業用Linuxマシンでの操作になります。

まずは、マイクロSDカードをパソコンへ接続してください。 接続したら、lsblkコマンドでマイクロSDカードが認識されていることを確認してください。

                        $ lsblk
                        NAME    MAJ:MIN RM  SIZE    RO  TYPE    MOUNTPOINT
                        sda        8:0    0  119.2G   0  disk
                        └─sda1    8:1    0  119.2G   0  part    /
                        sdb        8:16   0  119.2G   0  disk
                        └─sdb1    8:17   0  119.2G   0  part
                        sdc        8:32   1    7.4G   0  disk
                        ├─sdc1    8:33   1     64M   0  part
                        └─sdc2    8:34   1    7.4G   0  part
                        sr0       11:0    1   1024M   0  rom
                    

私の環境では上記結果のようになりました。 SDカードはsdcです。 この時、sdcは既に2つにパーティションが区切られていたため、sdc1とsdc2というパーティションができています。(Typeがpart)しかし、このあと重要になるのはsdcというデバイス名(Typeがdisk)です。

このとき、デバイス名を間違えると、パソコンのハードディスクに書き込んでしまいます。 OSが起動しなくなってしまうかもしれません、念入りにチェックしてください。

パーティション分け

SDカードにルートパーティションを作成します。

fdiskで切り分けていきます。
"devicename"の部分は先程lsblkで調べたデバイス名を使用してください。 私の場合はsdcです。

                            $ sudo fdisk /dev/devicename
                        

fdiskが起動したら、まずはデバイスのパーティションを全て削除します。 oを入力してください。

                            Command (m for help): o
                        

これでパーティションが初期されました。

次に、ブートパーティションを作成します。 nを入力してください。

                            Command (m for help): n
                        

すると、作成するパーティションタイプを選択するよう言われます。 primaryパーティションを使用するため、そのままEnterキーを押すか、pを入力してください。

                            Select (default p): p
                        

次に、パーティションナンバーを選択するよう言われます。 1を使用するため、そのままEnterキーを押すか、1を入力してください。

                            Partition number (1-4, default 1): 1
                        

次に、開始セクターを入力するように言われます。 最小の値を使用するため、そのままEnterを押すか、2048を入力してください。 表示される数字はデバイスのサイズによって異なります。

                            First sector (2048-15564799, default 2048): 2048
                        

次に、終了セクターを入力するよう言われます。 最大の値を使用するため、そのままEnterを押してください。

                            Last sector, +sectors or +size(K, M, G, T, P} (2048-15564799, default 15564799):
                        

パーティション分けは完了です。 pを入力して、パーティション構成を確認したら、wを入力して変更を適用してください。

                            Command (m for help): p
                            Command (m for help): w
                        

パーティションのフォーマット

パーティションを作成したので、次にext4にフォーマットします。 私の場合はdevicename1はsdc1になります。 今度は、デバイス名でなくパーティション名を指定するため、最後に1がつくことに注意してください。

                            $ sudo mkfs.ext4 /dev/devicename1
                        

もしdosfstoolsがインストールされていなかった時はインストールしてください。

                            # ArchLinuxの場合
                            $ sudo pacman -Sy dosfstools
                        

SDカードにArchLinuxをインストール

マウント

作業のために適当なディレクトリにマウントします。 今回は~/Document/SDとします。

                            $ mkdir -p ~/Document/SD
                            $ cd ~/Document
                        

マウントします。

                            $ sudo mount /dev/devicename1 ~/Document/SD
                        

ダウンロード

ダウンロードしてきます。

                            $ wget http://archlinuxarm.org/os/ArchLinuxARM-am33x-latest.tar.gz
                        

もしwgetがインストールされていなかった時はインストールしてください。

                            # ArchLinuxの場合
                            $ sudo pacman -Sy wget
                        

インストール(展開)

最後に、インストール(SDカードへ展開)をします。 bsdtarを使ってSD/フォルダへ展開してください。

                            sudo bsdtar -xpf ArchLinuxARM-am33x-latest.tar.gz -C SD
                        

書き込みを完全に完了させるために、syncコマンド(メモリにバッファされたすべてのデータをディスクに書き込む)を実行します。

                            sync
                        

ArchLinuxをBeagleBoneBlackへインストール2へ続く

おわりに

長くなってしまったため、分割して次回に続きます。
わからないことなどがありましたら、ご質問だくさい。

2015/6/30

 

 

 

ArchLinuxをBeagleBoneBlackへインストール ver.old

目的

最新のBeagleBoneBlackにArchLinuxをインストールする方法ではうまく起動しない場合があるため、古い方法でインストールしてみます。

パッケージの再配布はできるかどうかわからないため、パッケージ2つをすでに持っている前提で進めます。

準備

まずは下記のものを用意してください

  1. BeagleBoneBlack (Rev C)
  2. マイクロSDカード
  3. LANケーブル
  4. MiniUSB-B to USB-A ケーブル
  5. マイクロSDカードへ書き込みができるLinuxマシン(マイクロSDアダプターの使用も可)

SDカードの準備

ここからはパソコンでの操作になります。

SDカードを接続しておいてください。

パーティション分け

SDカードのパーティション分けをします。

ArchLinuxをBeagleBoneBlackへインストールを参考にしながら、デバイス名をチェックしてください。

次にfdiskを使ってパーティション分けを行います。詳しい使い方は上記リンク先をご覧ください。

パーティションは2つ作成します。 bootパーティションとrootパーティションです。

                        $ sudo fdisk /dev/user_devicename
                    

下記のように、順番に入力して1文字づつEnterを押してください。 空行はEnterのみです。

                        o
                        n
                        p
                        1

                        +64M
                        t
                        e
                        a
                        n
                        p
                        2


                        p
                        w
                    

パーティションのフォーマット

パーティション1をfat16、パーティション2をext4でフォーマットします。

詳しくは こちらをご覧ください。

                        $ sudo mkfs.vfat -F 16 /dev/your_devicename1
                        $ sudo mkfs.ext4 /dev/your_devicename2
                    

インストール

マウント

マウントします。

                        $ mkdir -p ~/Document/root ~/Document/boot
                        $ cd ~/Document
                        $ sudo mount /dev/your_devicename1 boot
                        $ sudo mount /dev/your_devicename2 root
                    

展開

ダウンロード済みの(今は公開されていない)ファイルをそれぞれ展開します。

                        $ sudo tar zxvf BeagleBone-bootloader.tar.gz -C boot
                        $ sudo tar zxvf ArchLinuxARM-am33x-latest.tar.gz -C root
                        $ sync
                    

アンマウントして取り出します。

                        $ sudo umount boot
                        $ sudo umount root
                    

BeagleBoneBlack(ArchLinux)の起動へ続く

おわりに

以上でインストールは完了です。SDカードをパソコンから取り外してください。 起動・設定については別の回で説明します。
わからないことなどがありましたら、ご質問だくさい。

2015/7/29

 

 

 

ReconJetの開発環境の構築

目的

ReconJetの開発環境の構築の構築を行います。

方法

準備

まずは下記のものを用意してください

Linux マシン(説明ではArchLinuxを使用)

ソフトウェアのインストール

ReconJetはAndroidベースのReconOSが搭載されています。

アプリ開発はAndroidアプリ開発と同様に行うことができます。

Androidの開発は以前はEclipseとSDKを用いた方法が一般的でいしたが、新しくAndroid Studioが登場したためこちらを使用します。

Android Studioのインストール

いつもどおりpacmanを使ってコマンドでインストール…といきたいところですが、Android Studioはブラウザを使ってダウンロードしてきます。

Androidのデベロッパー向けサイトへアクセスしてLinuxのandroid-sdk_*****-linux.tgzをダウンロードします。

ダウンロードしたファイルを解凍します。

                            $ tar zxvf android-sdk_*******-linux.tgz
                        

アップデートします。

                            $ tools/android update sdk --no-ui
                        

おわりに

いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。

2015/7/15

 

 

 

ReconJetの起動

目的

ReconJetの起動・初期設定についてです。

ReconJetはスポーツ用のメガネ型ウェアラブルデバイスです。 Microsoft社のHoloLensなどとは違い、現実空間へのホログラム投影ではなく、右下固定で情報を表示することができます。

方法

では、ここからはReconJetの起動を行っていきます。

準備

まずは下記のものを用意してください

  1. ReconJet
  2. MicroUSBケーブル
  3. ネットワークに接続したWindowsマシン

ReconJetとパソコンを接続するためにはインターネット接続が必要です。

ソフトウェアのインストール

パソコンを使って設定をするために、ソフトウェアをインストールします。

まずは、サイトにアクセスしてください。Get StarTed | Recon Engage

ログインを求められるので登録をしてください。

登録をして指示通り進めると、UpLinkのダウンロードボタンが表示されます。押してダウンロードしてください。

ダウンロードしてインストールします。

ReconJetの接続

ReconJetの本体後方にあるポートからパソコンのUSBポートをマイクロUSBケーブルでつなぎます。ReconJetの下部後ろのボタンで電源を入れます。

ここで、(またはそれ以前に)ソフトウェア側でログインを求めれるのでブラウザを使ってログインしてください。

あとは、ソフトウェアの指示通りにアップデートを行ってください。

最後に、マップをダウンロードする範囲を指定します。適宜設定してください。

あとは、ReconJetのインストラクションにしたがって操作をしてください。

スマートフォンにRecon Engageをインストールすると接続することができます。

おわりに

いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。

2015/7/10

参考サイト

 

 

 

ROSチュートリアル3

目的

前回に続きwikiのチュートリアルをやっていきます。

今回はメッセージについてです。ROSではトピックとサービスを使った通信方法があります。

このトピックのデータ型をメッセージと呼びます。

messageを使う

メッセージファイルはROSメッセージの型を説明する単純なテキストファイルです。 これはメッセージのソースコードを異なる言語で作成するのに使います。

msgディレクトリに保管されています。

メッセージは1行ごとに型と名前が記載されているテキストファイルです。

型には下記のようなものが使用できます。

  • int8, int16, int32, int64 (plus uint*)
  • float32, float64
  • string
  • time, duration
  • variable-length array[] and fixed-length array[C]
  • Header

メッセージの定義

メッセージを定義してみましょう。

                        $ cd ~/catkin_ws/src/beginner_tutorials
                        $ mkdir msg
                        $ echo "int64 num" > msg/Num.msg
                    

package.xmlの編集

次にpackage.xmlを編集します。

下記の2行のコメントアウトを外してください。

                        message_generation
                        message_runtime
                    

CMakeLists.txtの編集

次にCMakeLists.txtを編集します。

まずは、CMakeLists.txtから下記の行を見つけてください。

下記のようになるように、コメントアウトを外して、追記してください。

                        find_package(catkin REQUIRED COMPONENTS
                            roscpp
                            rospy
                            std_msgs
                            message_generation
                        )
                    

実行時依存も有効になることをチェックします。

同様に下記の行を見つけて有効になっていることをチェックしてください。

                        catkin_package (
                            ...
                            CATKIN_DEPENDS message_runtime ...
                            ... )
                    

次にメッセージファイルを追加します。

同様にして、CMakeLists.txtから下記の行を見つけて、同じになるように編集してください。

                        add_message_files(
                            FILES
                            Num.msg
                        )
                    

さらに、同様にしてメッセージ生成generate_messages()の呼び出しも有効にします。

                        generate_messages(
                            DEPENDENCIES
                            std_msgs
                        )
                    

make

makeします

                    $ cd ../..
                    $ catkin_make
                    $ cd -
                

rosmsg

rosmsgを使ってメッセージを確認することができます。

                    $ rosmsg show beginner_tutorials/Num
                    $ rosmsg show Num
                

おわりに

いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。

2015/7/28

参考サイト

 

 

 

ROSチュートリアル2

目的

前回に続きwikiのチュートリアルをやっていきます。

roslaunch

roslaunchを使用すると、lanchファイルで定義したノードを一度に起動することができます。

                    $ source ~/catkin_ws/devel/setup.bash
                    $ roscd beginner_tutorials
                    $ mkdir launch
                    $ cd launch
                

launchファイル

下記の内容のturtlemimic.launchファイルを作成してください。

                        
                            
                                
                            
                            
                                
                            
                            
                                
                                
                            
                        
                    

groupでは、turtlesim1,2という名前スペースを持った2つのグループをsimという名前のturtlesimノードで起動します。

nodeでは、turtlesim2がturtlesim1を模倣するmimicノードを起動します。

roslaunch

launchファイルをroslaunchから使ってみます。

                        $ roslaunch begginer_tutorials turtlemimic.launch
                    

別のターミナルからturtle1にtopicを送ってみます。

                        $ rostopic pub /turtlesim1/turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'
                    

turtle1にのみtopicを送りましたが、turtle2まで動きます。

おわりに

いかがでしたでしょうか。 わからないことなどがありましたら、ご質問だくさい。

2015/7/28