組み込みlinuxの毎日

毎日が勉強です。

内蔵eMMCにdebianをインストール

2014-05-31 09:25:56 | BeagleBoneBlack
手持ちのmicroSDが足りなかったため、内蔵eMMCにdegianをインストールしました。
あたらしいeMMCだからきっとウェアレベリングがあるのだろう(勝手な想像&調べるのが面倒)と思うので....

イメージは、こちらからダウンロードしてmicroSDに書き込み、
microSDからブートしてしばらくすると、eMMCに展開が終わります。

ワタシのもっているBBBは旧版(A5C)のため、eMMC容量が2Gしかありません。
上記イメージをインストールすると、空きエリアは100Mバイト程度しかなく、
すぐにいっぱいになってしまいました。
用途として、ターミナルでログインし、sambaでファイル転送・コンパイル、テスト
という環境なので不要なものを削除しました。


やったこと、

ログイン:debian / temppwd

・リポジトリのバージョンアップ
  sudo apt-get update
  sudo apt-get upgrade

・sambaのインストール
  $ sudo apt-get install samba samba-common

・sambaの設定
共有フォルダの作成
   $ sudo mkdir /var/samba
   $ sudo chown nobody:nogroup /var/samba
   $ sudo chmod 777 /var/samba

  設定ファイルの編集
  /etc/samba/smb.conf

  workgroup = WORKGROUPの下あたりに、

  # Windows 側の文字コード
  dos charset = CP932
  # Linux 側の文字コード
  unix charset = UTF-8
  # swat で表示される文字コード
  display charset = UTF-8
  # Linux に存在しないユーザーでのアクセスはゲストとして扱う
  map to guest = Bad User

最後のほうに、
  [share]
  path = /var/samba
  writeable = yes
  force create mode = 0666
  force directory mode = 0777
  guest ok = yes
  guest only = yes

  sambaのリスタート、
  /etc/init.d/samba restart



・ディスクの容量を増やしたいのでいくつかパッケージを削除
  $ sudo aptitude purge lxde-core
  $ sudo aptitude purge lxde-common
  $ sudo aptitude purge lxde-common
  $ sudo aptitude purge lxmenu-data
  $ sudo aptitude purge lxpanel
  $ sudo aptitude purge lxsession
  $ sudo aptitude purge lxterminal
  $ sudo aptitude purge apache2
  $ sudo aptitude purge lightdm
  空きが300Mくらいになったので、面倒なのでここで打ち止め。



ICS(インターネット接続の共有)

2014-05-24 13:54:08 | インポート
以前、職場のLANにTS7553を繋げないため、私用PCにICSを設定し、職場内でもlinuxマシンからインターネットアクセスする方法について書きました。
今回は、ICSにて設定されるIPアドレスの変更方法について書いておきます。

Vista:
ICSをつかって共有されるIPアドレスは、192.168.0.1~
Windows7:
同アドレスは、192.168.137.1~

という違いがあります。つなげるlinuxが全部DHCPならよいのですが、
linuxと通信する機器の設定などは固定IPのため、ICSで供給されるIPが
ホストPCによって変わるのはチト面倒です。

Vistaはそのままにして、Windows7を192.168.0.1~とするように
変更しようと思います。


参考サイト:
http://support.microsoft.com/kb/230148/ja
-----引用------
ホストとの接続の共有ホストの DHCP サービスで使用される IP アドレスの範囲に割り当てられている IP アドレスを変更するにはレジストリ エディターを使用して、次の値を変更します。これらの値は、次のフォルダーに配置されます。
HKLM\System\CurrentControlSet\services\SharedAccess\Parameters
(REG_SZ)ScopeAddress
(REG_SZ)StandaloneDhcpAddress
ScopeAddress 値は接続の共有で使用するアドレスの範囲を設定します。StandaloneDhcpAddress 値は、SoftAP と仮想の Wi-Fi が有効になっているときに使用されるアドレスの範囲です。両方の値をネットワーク マスク 255.255.255.0 を使用しは構成できません。
---------------




TS7553のWatchdogタイマー

2014-05-22 18:42:48 | TS7553
TS7553にはハードウェアのWatchdogタイマーが搭載されています。
来週から、TS7553を搭載した状態での母艦(本体装置)のEMC試験があるため、
異常時のWDT自動復帰機能を追加しました。

こんなな感じでWDTを働かせます。
  sbuslock();
  sbus_poke16(0x74, 2);
  sbusunlock();

※パラメータは、
0 feed watchdog for another .338s
1 feed watchdog for another 2.706s
2 feed watchdog for another 10.824s
3 disable watchdog
上記設定は=2なので、10.824秒です。

わりと簡単でした。

rootfsをReadOnlyにてマウントしているため、WDTリセットが
発生してもLinuxやアプリ・設定データは壊れません。



データロガーの案件

2014-05-20 18:23:49 | BeagleBoneBlack
Beagleboneblackにてデータロガーを開発中です。

こまったことに、データ収集する対象がすべてmodbusなのにI/Fが微妙に違います。
すべてLAN経由です。

1)BBB → LAN-RS485変換機 → (RS485) → 日射量計、気温計
2)BBB → LAN-RS485変換機 → (RS485) → modbus/RTU コントローラ → 計測器 → ターゲット
3)BBB → modbus/TCP コントローラ → (専用回線) → 計測器 → ターゲット

こんな感じです。
LAN変換機経由のやつはボーレートをあわせることにより modbus/RTUにて共通化できそうですが、
mocbus/TCPはフレーム構成が違うので、これだけ別モジュールにする必要があります。

現在、2)は確認済み。1)は動かず(原因わからない) 3)modbusでレジスタ値=FFFFで返る謎(原因わからない
の状況で調査中です。

定時上がりの日とか休日とか、でやっていると、なかなか進みが遅いです。





案件2のストレージ構成

2014-05-20 18:16:07 | TS7553
前回書いたストレージ構成で、いまからmicroSDの書き込み・読み込みテストを行います。
OSもmicroSDに入れる(TS7553のオンボードFlashはあまり使いたくない)ため、24Gバイトです。

書き込み(24Gのリングバッファ)→読み込み(CRCチェック)をひたすら繰り返します。
24G×20周くらいまでno errorなら、まあ良しかと。

対象とするSDカードは、
 ・吊るしで買った 32G microSD trancend 約2000円
 ・NMR社推奨の、工業用 32G microSD 約7000円
どちらが耐久性があるか、競争させようと思っています。