シングルボードコンピュータのBeagle Bone Black(以下、BBBと略す)をLinuxで動かしている状態でのプログラムのBBBへの書き込み方を教えて下さい。
前任の人からBBBを通信と制御に使用した開発途中の装置を引き継ぎました。
前任の方も退職準備で忙しかったので、引き継ぎを受けたのは以下の部分のみ。
Linux UbuntuをmicroSDに入れてBBBにて起動。Device-Treeだとか色々な設定をして、どうやらBBBはUbuntuとして起動する状態になっている。
さて、今後装置制御をBBBにやって貰うにはBBBにプログラムを書き込む必要があると思うのですが、この点の説明は全くして貰っていません。
BBBをディスプレイやキーボードに繋いだ状態で、直接プログラム(C言語)を書き込んでコンパイルすれば良いのでしょうか? 或いは、PC上で開発して、コンパイルしたものをIP経由(か何かの方法)で入れるのでしょうか?
「BeagleBoneBlackで遊ぼう!」と言う本を参照しているのですが、どうやってBBBに書き込んでいるのかよく分からなくて、混乱しています。
それと、BBBに電源入れたら、上記で準備したプログラムが自動で走るようにするにはどうすれば良いでしょうか?
どなたかお分かりになる方、教えて下さい。
No.1ベストアンサー
- 回答日時:
Ubuntuであれば、基本的なシステムは
deb形式のパッケージを、dpkg,apt,aptitudeといったコマンドや
GUI上のソフトウェアセンターなどを使って管理します。
Ubuntuには、DebianやFedoraなどと同じように
Ubuntu用のリポジトリーと呼ばれるサーバー上のファイル倉庫があり
apt,aptitude,ソフトウェアセンターやSynapticなどは
このリポジトリーにあるソフトを扱うための基本的な管理ツールです。
PPAと呼ばれる、標準のリポジトリー以外のパッケージ群も
PPAの追加といった行程を経て追加することができます。
これらは、依存関係と競合を考慮しながらアップデート管理をできます。
ただし、各パッケージはUbuntuそのリリースごとにリリース時バージョンのものを使い
たとえば、Apache HTTPサーバーは2.4.9や2.2.27が出ていますが
Ubuntu12.04LTSとしては2.2.22のまま、セキュリティパッチを充てたものが供給されています。
(PPAで新しいバージョンを供給するような場合もありえます)
こういったリポジトリーにあるパッケージはBBBの場合はCortex A8というARM系のCPUなので
Cortex A8用としてビルドされたファイルが収納されています。
対して、一般的に配布されているソフトは、ほとんどの場合
ソースコードか、x86かAMD64用としてビルドされたものです。
ですから、そういったものや自作のものであれば
開発環境をBBBの中に入れて、そこでビルドするか
あるいは、クロスコンパイル環境を構築して、PCでビルドすることになります。
Ubuntuでは開発環境の基本的な部分は
build-essentialパッケージを入れるだけで導入できたりします。
多くのソースコードが、これを入れるだけでビルドできるようになります。
ただ、BBBのストレージの小ささとCPU性能の低さを考慮すれば
推奨されるのはクロスコンパイルということになります。
ただ、開発内容によっては、スクリプト言語などを多用して
CPUアーキテクチャーの違いに、束縛されにくい方法もあるかもしれません。
Linux系OSでは、Windowsでは一般的ではない
スクリプト言語による、既成コマンドも広く使われています。
なお、Linux系OSで、外部からファイルを取得する方法は
ftpやwget(HTTP)などが基本的な方法と言えます。
wgetはコマンドラインから、HTTPサーバーからファイルを取得することができます。
ftpはftpサーバーから、必要に応じて、NFSサーバーやSamba(SMB,CIFS)サーバーを
ファイルサーバーとして利用することも考えられます。
スクリプト言語などで追加したコマンドは、もともと実行PATHが設定されている
/usr/local/bin/に置くのが手軽です。
実行PATHを追加設定するなら、任意のディレクトリーでもイケます。
Cなどで開発したソフトも、基本的には/usr/local/binなどに置きます。
ですから、debパッケージにまとめた上で
PCからBBBに受け渡すようにしておけば
インストール先などもdebパッケージ作成時に指定されるので
管理の手間が簡略化できます。
http://sourceforge.jp/magazine/14/01/17/090000
ソフトごとに、独自のディレクトリーを作るというカタチは
Linuxを含むUNIX系OSでは一般的ではありません。
Windowsでは、そういう文化ゆえに、バックアップの煩雑さが問題となり
設定ファイルをバイナリーファイルで統合するレジストリーへと、誤った進化を経たような感があります。
UNIX系OSでは、あるソフトの実行ファイルは/usr/bin/や/usr/sbin/に置き
設定ファイルは/etc/下に置き、説明書は/usr/share/man/<locale>/に置くといった
役割ごとのディレクトリー分けが徹底されています。
クライアントシステムとしての個人設定も
~/とも記述するホームディレクトリー下に保存するようになっており
/etcと/homeをバックアップすれば
ほとんどの設定はまとめて残せると言われています。(例外はあります)
お礼が遅くなり、申し訳ありませんでした。
アドバイス有難うございます。Linux系は分からない事が多いので、大いに参考になりました。まだ不明の点も多いですが、色々試してみます。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- 会計ソフト・業務用ソフト 同じデータの入ったセルの統合の方法 1 2022/10/04 12:29
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- JavaScript jsonテキストデータの並び替えができるサービスを教えてください 2 2022/08/05 20:16
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
サクラエディタでjavaのプログ...
-
Classファイル → Javaソース...
-
dokojavaのコンパイルについて
-
.jarファイルの中身って書き換...
-
eclipseの構文エラーについて
-
「識別子がクラス名でも名前空...
-
Javaファイルをコンパイル
-
javaの簡単なソースがコンパイ...
-
TOMCAT_HOMEって?
-
MFCアプリでCPropertySheetのサ...
-
*.jarファイルを逆コンパイルで...
-
javaが文字コードの影響でコン...
-
C言語とJavaの違い
-
c言語のコンパイル後のエラ-に...
-
jadによるclassファイルの逆コ...
-
Eclipse3.5EEでJavaのコンパイ...
-
": \\12288 は不正な文字です。...
-
String型変数の宣言
-
配列に対してsetText()は使えな...
-
VB4⇒VB6の移植時の注意点は?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.jarファイルの中身って書き換...
-
javaが文字コードの影響でコン...
-
Eclipse3.5EEでJavaのコンパイ...
-
コンパイルエラーに出てくる、i...
-
javax.servlet は存在しません...
-
IIS環境でJAVAを使用したい
-
サクラエディタでjavaのプログ...
-
Javaのコンパイル結果が表示さ...
-
「識別子がクラス名でも名前空...
-
eclipseの設定のJREとコンパイ...
-
javaの簡単なソースがコンパイ...
-
eclipseの構文エラーについて
-
JAVAでC/C++の条件コンパイルの...
-
dokojavaのコンパイルについて
-
TeXで図を挿入できません.助け...
-
LaTeXでのアンダーバーの入力
-
Log4jのインストール
-
逆コンパイルの見方について
-
TOMCAT_HOMEって?
-
Javaについて教えてね。
おすすめ情報