MacBookAirでUSBブートでUbuntuを使う

(※間違えるとOSXのHDDが破壊されるので、試す方は自己責任でお願いします。ハードディスクのバックアップを取ることをお忘れなく。当記事の手順自体が間違ってることも十分ありえます。)


RaspberryPiで快適にROSを使えるようになったのですが、
手持ちのセットではさすがに画面が小さすぎる&3Dシミュレーターなどは動作が重すぎかもしれません。
そこで、ubuntuの学習用にMacBookAirでもUSB起動でUbuntuを使えるようにしたいと思います。



私の環境での準備物
①MacBook Air 2011(OS10.7.5) ちなみにUSBは2.0規格...
②LIVE UBUNTU用USBメモリ 4Gぐらい1個。
③UBUNTU用USBメモリ 16Gぐらい1個。(USB3.0必須)



③のUSBメモリは高速のものでないと使い物になりません。4つ試しました。
・かなりまえにかったもの(USB 2.0) → 数年前に購入。かなり重い。×
・シリコンパワー SP 16GB → 数年前に購入。使い物にならないほど重い。×
・SUPER TALENT USB3.0 Express NST1(USB3.0) → 最近購入。使えるが重い。×
・SanDisk Ultra Fit SDCZ43-0(USB3.0) → 十分使える!文句なし。◎
PC本体がUSB2.0までの対応でも3.0対応の高速メモリなら使い物になるようです。


【Ubuntuが起動するUSBメモリを作る】


手順はこちら様にすべて掲載されていましたので参考にさせていただきます。
http://shinsuke789.hatenablog.jp/entry/2014/07/19/204909

・ubuntu日本語版の入手先:https://www.ubuntulinux.jp/download
・ターミナルでisoをimgに変換
・使うUSBメモリの場所をdiskutil listで特定。例(/dev/disk1)
・diskutil unmountDisk /dev/disk(番号)でアンマウント。
・sudo dd if=(ubuntuのイメージをドロップ) of=/dev/disk(番号) bs=1m
 ※disk(番号)をrdisk(番号)とすると書き込みが早くなるらしいです。



特にUSBをブータブルにする別途の手順などはなく、
起動時にaltキーを押しておくブートディスク選択でUbuntuのディスクを選べばOKです。



起動するだけでMacBookAirのトラックパッドや音量キーまで使用することができ、かなりびっくりします。
もちろんWifiもすぐに使えます。
これだけでubuntuの基本的な機能をいろいろと試すことができます。
メモリを複数持っていれば、これを1つ準備しておくだけでいろいろと便利に使えそうです。



ただし、この方法だとOSのディスクスペースが足りず、

$sudo apt-get update

ができません。
ROSのフルインストールも入りません。
認識されない領域を認識させるリサイズもかなり難しいようです。
ということで、改めて別の方法にてインストールします。

ただし、このUSBはインストール用のLIVE UBUNTU USBとして使えますのでキープします♪




【MacBookAirで使えるブート用USBを作る】



さきほど作成したLIVE UBUNTU USBを入れて、optionキーを押しながらMacBookAirを起動します。
ubuntuの入った起動ディスクを選びます。
「Try ubuntu without installing」を選びます。


画面の右上のUbuntuの設定から、念のためスリープ、シャットダウンなしを設定しておきます。
「画面の明るさとロック」→「ロックする」と「サスペンドからの復帰時にパスワードを要求する」をオフに。


wifiを設定します。画面の右上のwifiマークから接続するwifiを選び、パスワードを入れてwifiにつなぎます。


インストールを開始します。
http://shiroichi.sakura.ne.jp/2011/10/20111029ubuntu/#gparted
を参考に。
USBメモリのext4を選び、変更ボタンを押し、
・利用方法:ext4ジャーナリングファイルシステム
・パーティションの初期化:チェック
・マウントポイント:/
に設定。
「ブートローダをインストールするデバイス」は、その上の数字なし(/dev/sdb)を選びます。
スワップファイルは無視します。


遅いUSBを使っている場合には、ここはかなり長いので寝たり出かけたりします。


インストールが終わったら、シャットダウンを選びます。
「インストールディスクを抜く」というような表示が出たら、ディスクを抜きます。
ここで一応、ブータブルUSBの作成は終了のはずです。


ただしそのままではブートできないので、OSX側にブート用の仕掛けを仕込みます。
http://refit.sourceforge.net/
から「rEFIT」をOSXにインストールします。
すると、インストール後は起動のたびにブートディスク選択画面が出るようになります。
これがイヤな人には他の方法もあるようですが割愛します。
ちなみにアンインストールはこちらにhttps://eingegenangriff.wordpress.com/2011/05/12/refit%E8%AC%9B%E5%BA%A7%E2%91%A6%E3%80%80%E3%80%9C%E3%82%A2%E3%83%B3%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E7%B7%A8%E3%80%9C/


いよいよUSBブートディスクでの起動を行います。
rEFITの起動画面で「EFI/ubuntu/grubx64.efi from EFI」を選択します。
罫線で囲まれたubuntuの起動画面にてubuntuを選択します。
画面がブラックアウトし、起動にかなり時間がかかるかもしれませんが、動いていることを信じてしばらく待ちます。

・osxではなくubuntuからの再起動であれば、rEFITを経由せず黒画面になることがあります。
・もしGNU GRUBのコマンドプロンプト画面が出てしまった場合は、「exit」と入力してリターンを押せばrEFITに戻ることができます。


無事に起動したら、ubuntuを終了し、
OSXと交互にブートを行うなど、動作を確かめます。


起動したubuntuでwifiの設定を行います。
ターミナルからアップデートを試みます。
$sudo apt-get update
は比較的すぐに終わりますが、アップグレードはかなり時間がかかるので注意します。


下記を参考に、apt-fastを導入します。アップグレードが少し早くなるかもしれません。
https://orebibou.com/2014/10/apt-get%E3%82%92%E3%82%88%E3%82%8A%E9%AB%98%E9%80%9F%E3%81%AB%EF%BC%81%E3%80%8Eapt-fast%E3%80%8F%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/

$ sudo add-apt-repository ppa:saiarcot895/myppa
$ sudo apt-get update
$ sudo apt-get install apt-fast

$sudo nano /etc/apt-fast.conf
上記40行目にある「MIRRORS」の値を、コメントアウトを外して以下の内容に変更する。
MIRRORS=('http://us.archive.ubuntu.com/ubuntu,http://mirror.cc.columbia.edu/pub/linux/ubuntu/archive/,http://mirror.cc.vt.edu/pub2/ubuntu/,http://mirror.umd.edu/ubuntu/,http://mirrors.mit.edu/ubuntu/')



$sudo apt-get update
$sudo apt-get upgrade
をします。
upgrade時になぜかキーボードの設定を聞かれました。
「Apple アルミニウムキーボード[JIS]」を選択します。



ubuntuの高速化のため、
「preload」をインストールします。
http://gihyo.jp/admin/serial/01/ubuntu-recipe/0008?page=3

$ sudo apt-get install preload

使用頻度の高い作業をプリロードしてくれるようになり、USBメモリからの作業を改善してくれます。
特にアプリの起動が速くなります!



これで、USB2.0搭載のPCで、USBブートの「使える」LINUX環境が出来ました。



ROSを使う場合は入れてしまいます。
ROSのインストール→rosdepのインストール→rosinstallのインストール

$ sudo apt-get install ros-kinetic-desktop-full
$ sudo rosdep init
$ rosdep update
$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt-get install python-rosinstall



最後に
$ roscore
が無事動けばROSの導入は完了。「ctrl+c」でroscoreを停止します。
スポンサーサイト

テーマ : 自然科学
ジャンル : 学問・文化・芸術

dd中の進捗確認


ubuntuのdd コピー中に、進捗を表示させる方法メモ。
https://vok.paburica.com/index.php?dd%2F進捗状況を知りたい

ddを実行中とは別のターミナルを開き、

$ while true; do sudo killall -USR1 dd; sleep 2; done

# ddを実行しているターミナルに、処理済みバイトや速度が2秒おきに表示される。

RaspberryPi2にROSを入れる


ラズパイ2にROSを入れます。
LINUX初心者なので、バリバリのデスクトップ環境をなるべく軽量に導入しつつ、
さらに有線LAN接続を使わずに無線LANのみでROS導入までたどり着こうと思います。

ラズパイのみでROS入門書である「ROSではじめるロボットプログラミング」の本を勉強することを目指します。

いくつかの種類のROS導入方法を試しました(いろいろとハマり地獄がありました)が、以下の組み合わせがおすすめです。

・OS:Ubuntu MATE(ubuntu 16.04.1 LTS/ xenial)
・ROS:ros-kinetic-desktop-full
・日本語入力:fcitx

以下、OSXでの導入事例ですが、導入の際に実際に行ったことを順に箇条書きしておきます。
これできっと、一度ぐらいラズパイを起動したことがある人なら誰もが、
挫折せずにラズパイにROSを導入できる・・・はずです。

unixなどの経験が全くなくラズパイに触れるのも初めてという人は、他のサイトや入門本を使って、
Raspbianなどより一般的なものを一度は起動させておくことをおすすめします。


【ROSをRaspberrypi+ubuntu MATEにインストールするのまとめ】


■準備物

・ラズパイ2(3もたぶん可)と電源
・ディスプレイとHDMIケーブル
・USBキーボード
・USBマウス
・Wifiドングル(おすすめは プラネックスのGW-USNANO2A等)
・SDカード(8G以上。たぶんクラス10が良い。たぶん16Gあれば安心。)


■まず、Ubuntu MATE をインストールします。

https://ubuntu-mate.org/raspberry-pi/

から、Raspberrypi用のubuntu mateをダウンロード。
このダウンロードにはけっこう時間がかかるので、作業の前日などにDLを完了させておくと便利です。

MAC OSXでのインストール方法は、前回の記事にまとめてあります。
http://fc2canned.blog54.fc2.com/blog-entry-1289.html


RaspbiにSDカードを入れて電源を入れると、自動で設定が行われます。


■SDのリサイズ

SDの現在のサイズ状況を調べます。

$ df -h

大容量のSDカードを使っている場合、容量が上限まで認識されていないことがわかります。

ここで、raspi-configをいれちゃいます。
これを入れると、Raspberrypi本体だけでSDカードの上限を認識させることができます。

$sudo apt-get install raspi-config

さっそくraspi-configを使ってファイルを拡張します。

$sudo raspi-config

ウィンドウが開くので、「1 Expand Filesystem」を選んでリターン。FINISHを押し、リブートします。

再びSDのサイズ状況を調べます。

$df -h

すると、/dev/root の容量のAvailがアップしていることが確認できます。


■Wifiの設定

デスクトップ右上の無線LANアイコンから、無線LANを設定可能です。
wifiドングルもMATEなら自動で認識してくれます。
電波を認識しない場合には、リブートで認識してくれる場合があります。
パスワード入力は入力時間が短いのでタイムアップに注意します。

ちなみにwifiドングルは、
PLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)
を使用していますが、機器が熱くならないのでとても良い。(以前使用していたBUFFALO製はやけどしそうなほど熱くなりました。)

ここで無線LANが正常に動作すれば、有線LANへの接続一切なしでインストールから環境構築までが可能です^^


■もろもろ最新版に

$ sudo apt-get update
$ sudo apt-get upgrade


■パスワードの変更

パスワードを変更したければ下記。
$ sudo passwd

ただし、一度使ったパスワードにはたぶん戻せなくなるので注意。


■画面サイズの調整

$ sudo nano /boot/config.txt

として、config.txtを修正する。下記をアンコメントとして、数字を書き換えます。
hdmi_group=1
hdmi_mode=数字(解像度の種類。私の環境では14)

リブートで解像度変更OKです。

※nanoの使い方。書き換えたらCTRL+oで上書き。CTRL+xでnano終了。


■デスクトップのオンオフの確認

ヘッドレスサーバー用にデスクトップ表示を停止することができます。
$sudo graphical disable
$sudo reboot

もちろん、デスクトップを有効に戻すことも簡単です。
$sudo graphical enable
$sudo reboot

これなら、デスクトップ環境で作ったものをそのままロボットにも組み込みOKそうですね。


■サウンド出力をオーディオジャックに強制する場合

$sudo amixer cset numid=3 1


■サウンドノイズの軽減(ファームウェアアップデート)

$ sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update

$ sudo rpi-update

$ sudo reboot


■デスクトップの軽量化

デスクトップのメニューから、
システム - 設定 - ルック&フィール - MATE Tweakを選択。
左のウィンドウの項目のウィンドウマネージャーから、
Marco(コンポジットなし)を選択してみる。
ウィンドウのアニメーションも切ってみる。


■日本語入力の導入

日本語表示には対応しているものの、日本語入力はできないので別途インストールします。
fcitxが安定しているらしいです。

$ sudo apt-get --install-recommends install fcitx-mozc fcitx-libs-qt5 fcitx-frontend-qt5
$ sudo reboot

デスクトップ右上のメニューバーに小アイコンが現れ、
半角/全角キーで日本語入力に切り替えができるようになります。


■ROSのインストール

いよいよROSのインストールです。
まず、ubuntsuのバージョンを確認します。

$ cat /etc/lsb-release

ラズパイ2用のubuntsu mateのubuntsuバージョンは。
Ubuntu 16.04.1 LTSで xenial
と表示されます。

今のところROSのバージョンである「indigo」はUbuntuの「trusy」と「saucy」とういバージョンには対応していますが、
当件でインストールしている「xenial」には非対応です。
しかしながら最新版のKinetic Kameはバッチリサポートされていますので、いれちゃいます。
テキストとして使おうとしている「ROSではじめるプログラミングロボット」の本はindigo対応ですがいれちゃいます。
練習なので「全部入り」のros-kinetic-desktop-fullをいれちゃいます。

参考)http://wiki.ros.org/kinetic/Installation/Ubuntu

$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 0xB01FA116

$ sudo apt-get update

$ sudo apt-get install ros-kinetic-desktop-full


※インストールにはちょっと時間がかかります。


■rosのイニシャライズ

$ sudo rosdep init
$ rosdep update

updated cash in /home/(名前)/.ros/rosdep/sources.cache
と表示されれば完了です。


■環境設定

$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
(この作業は待ち時間がほとんどなく一瞬で完了します。)


■頻繁に使うROSコマンドセットのインストール

$ sudo apt-get install python-rosinstall

以上でインストール作業は終了です。

念のため
$sudo reboot

ここで私の環境ではラズパイのグリーンLEDが4回点滅(loader.binが起動しない)という状態になりました。
電源を切り、再度電源を投入したところ、起動しましたが、ちょっと不安が残る仕上がりになってしまいました><
ちなみにこの再起動はけっこう時間がかかります。2回目の起動から速くなります。


■動作確認①

$ roscore

と命令すると、メッセージが表示されます。

… Logging to /home/ほにゃらら…
SUMMARY ほにゃらら
PARAMETERS ほにゃらら
NODES ほにゃらら
ほにゃらら
started core service [/rosout]

というひょうな表示がされたらOKです。

※ CTRL+c キーで、ROSの実行を停止してコマンドプロンプトに戻ることができます。これ重要です。

ここまでで「ROSではじめるロボットプログラミング」のp22までの内容の
Raspberrypiバージョンが完了!のはずです。


■動作確認②

turtlesimを起動します。

$ roscore

ターミナルをもう一つ立ち上げて、

$ rosrun turtlesim turtlesim_node

カメの画面が現れます。
さらにターミナルをもう一つ立ち上げて、

$ rosrun turtlesim turtle_teleop_key

このターミナルにフォーカスした状態で矢印キーを押すことで、画面上のカメを操作できるようになります。

これで一応、動作確認まで完了です!


th_CIMG8023.jpg

(うごいてるうごいてるとりあえずはラズパイでROSがうごいてるよいそよいぞ)

テーマ : 自然科学
ジャンル : 学問・文化・芸術

ラズパイ用SDの準備


ラズパイでいろいろなOSとDESKTOP、ROSの組み合わせを試しているのですが、
SDのフォーマットからOSコピーまでの手順を毎回わすれるので自分用にメモ。




①SDカードを挿す
 →ディスクユーティリティでSDのディレクトリをアンマウント
  →FATで消去。

②ターミナルでSDをアンマウント
 $ diskutil list
 でカードの場所を調べて、
 $ sudo diskutil unmountDisk /dev/diskほにゃらら

③ダウンロードしたlinuxのimgファイルの書き込み
$ sudo dd if=imgファイル of=/dev/rdiskほにゃらら bs=1m
ディスクの場所にrをつけてrdiskほにゃららとし、 bs=1m も加えることで高速コピーができる。
imgファイルの場所は、ファイルをターミナル画面にドロップすればOK。

④書き込み中はターミナルが静かになるが、
 CTRL+Tで進捗が表示される。

テーマ : 自然科学
ジャンル : 学問・文化・芸術

ラズパイにしゃべってもらう

th_P1110528.jpg



ラズパイ。
開発環境だけ整えてうっかり満足していました!
少しずつ進めます。




"おしゃべりロボット「マグボット」"の本を使って、
ラズパイをArduinoのように使えるようになりたいです。
その前にいろいろと問題点を解決。




まず無線LANが激アツなので交換。
バッファロー製からPLANEX 無線LAN子機 (USBアダプター型) 11n/g/b 150Mbps MacOS X10.10対応 GW-USNANO2A (FFP)へ。

pi@raspberrypi ~ $ cat /etc/debian_version
8.0


OSのバージョンは8.0です。
GUIの右上のWifiボタンから接続したいSSIDを選んでパスワードを入れるだけであっという間にネット接続。




しゃべらせたいのでイヤフォンジャックをつないでみましたが、ノイズがものすごいです。
http://ogane.com/homebrew/rpi/1461/index.htmlを参考にさせていただき、
ファームウェアを更新!

$ sudo wget http://goo.gl/1BOfJ -O /usr/bin/rpi-update && sudo chmod +x /usr/bin/rpi-update

$ sudo rpi-update

$ sudo reboot


かなりノイズが低減しました!




本の7章の通りに音声合成関係をインストール。

誤植:
p202の/etc/rc.lolal → /etc/rc.local
p247の-x $DICDIRE \

初心者に優しそうな本でも、誤植を誤植と見抜けるレベルがないと壁にぶつかります。
初心者向けのプログラム関連本は初版を回避できれば誤植を回避できるかもしれません。

$ /home/pi/mugbot-talk-1.1.sh グアッシャ!

しゃべるようになりました^^




ラズパイを起動したら自動的にスクリプトを実行する!
についても知りたかったので試してみました。
http://torisky.com/ラズベリーパイ:起動時に自動実行したい
で勉強させていただきました。

$ sudo nano /etc/rc.local

として、rc.localの内容を書き換えます。
exit 0の前に
/home/pi/mugbot-talk-1.1.sh 起動しました。
を1行追加。




ラズパイのスイッチオンから自動的に音声「起動しました!」と言ってくれるようになりました^^
あとは外部にシャットダウンボタンとリブートボタンも設ければ、Arduinoに近い使い勝手にできそうです。

テーマ : 自然科学
ジャンル : 学問・文化・芸術

プロフィール

二名川(ニナガワ)

Author:二名川(ニナガワ)
ホビーロボットをレトロゲームが発展したものと捉えて楽しく遊び倒します。
子供が夢を見ている時間帯に稼働します。

宣伝:電子出版しました。
「コンソロイド ガイドブック」
46107_CONSOLOID_GUID_FACE_200.jpg





■作成中の機体
汎用ヒト型決戦遊具 ~RX計画~
RX-7.5 ゼロタンク
RRf-0.6 ゼニィ
RXM-7.9 ゼムネス
RX-7.5R 量産型ゼロタンク
RX-7.5Fp ファミタンク仮設1号
RX-7.7 ゼロキャノン
RX-7.8 ゼログレイ
SMS-0.1 ゼロライナー
以下続く

ブログ内検索
最近の記事
最近のコメント
カテゴリ
月別アーカイブ
リンク