2014年6月14日土曜日

Puppy Linuxでsamba鯖を立てる時のメモ

Puppy LinuxでSamba鯖を構築するときに忘れないようにメモっておく

使用したPCのスペック
・型番: PC-MT1-H1 (SHARP Mebius)
・CPU: Intel PentiumⅢ 500MHz
・RAM: 128MB
・HDD: 20GB

使用したOS
・パピーリナックス 431JP2012

~基本的な流れ~
0. Puppy Linuxをインストール後、ネットワークウィザードよりLANの設定を行う。IPアドレスは固定しておく。
1. Puppy LinuxにSambaは同梱されていないので"Puppyパッケージマネージャ"から"samba"で検索してインストールする。
2. smb.confの設定。ファイルは/etc/opt/sambaにある。
3. 設定完了後、端末から"/opt/samba/sbin/smbd start" "/opt/samba/sbin/nmbd start"をタイプし、デーモンを起動させる。これでネットワーク上に鯖機のアイコンが見えるようになると思う。

OSを再起動するたびにコマンドを入力するのが面倒なので、コマンド類を記述したファイルに実行権限を与えてホームディレクトリのStartupフォルダに入れておく。
これで次回起動時から自動的にデーモンが起動するようになる。

ファイアウォールを設定する際はSambaで使用するポートを塞がないように注意する。
"nmap localhost"で使用しているポートを調べることができる。 ※nmapコマンドを使用するにはnmapのインストールが必要。

設定後のスクショなど

ネットワークドライブとして追加

ポート開放設定 5900番はVNC用


クライアント側からファイルをアップロード出来ても、消せないという問題が発生して困っていたが、以下の項目を追記することで解決した。
[global]
  acl check permissions = no

あと、同じ鯖内の共有フォルダに同時にセクションを張れない模様? guestアカウントでログイン中に別の共有フォルダにログインしようとするとエラーが出る。

2014/06/24追記
再ログイン後にネットワークドライブの再接続に失敗するときは、「コントロールパネル」→「資格情報マネージャー」よりWindows 資格情報を追加することで解決した。
現状設定ファイルスクショ



~ おわり ~


2014年6月1日日曜日

ATxmega32D4 タイマメモ

秋月電子で販売されてるATxmega32D4のタイマーの使い方メモ

xmega32D4には4つの16bitタイマーが搭載されている。
うち3つは4つの比較チャネルを持っていて、残りの1つは2つの比較チャネルを持っている。
TCxx.CCA, TCxx.CCB, TCxx.CCC, TCxx.CCDで比較対象となる値を設定する。
これらを使って4通りの周波数で14本のPWMを出力できる。
xmegaは入出力ポートがとても高機能になっていて、ピン再割当機能を使ってPWM出力をOR変調できたり、ピンn形態設定レジスタ(PORTx.PINnCTRL)を使ってIOピンの出力形態をデフォルトのコンプリメンタリからワイヤードOR、ANDに切り替えれたりもする。これは2和音矩形波出力を行う時に便利に使えそう(๑╹ڡ╹๑)

以下ソースコード
/*
 * ATxmega32D4_test.c
 *
 * Created: 2013/10/13 14:06:52
 *  Author: kingyo
 *
 * ライタの接続
 * Vcc:   Vcc
 * GND:   GND
 * MISO:  PDI_DATA(34pin)
 * RESET: PDI_CLK(35pin)
 *
 */ 

#include <avr/io.h>
#define F_CPU 32000000UL // 32 MHz
#include <util/delay.h>

int main(void)
{
 /* IOポート設定 */
 PORTC.DIR = 0xff;       // ポートCを出力に
 PORTD.DIR = 0xff;       // ポートDを出力に
 PORTE.DIR = 0x0f;       // ポートEを出力に


 /* クロック設定 内蔵CR32MHz */
 OSC.CTRL |= OSC_RC32MEN_bm;        // 32MHz内部発振を許可
 while(!(OSC.STATUS & 0b00000010)); // 安定化待ち
 CPU_CCP = CCP_IOREG_gc;            // 設定変更許可
 CLK.CTRL = CLK_SCLKSEL_RC32M_gc;   // 32MHzに設定
 //DFLLRC32M.CALA = 0xff;           // DFLL校正レジスタ弄り
 //DFLLRC32M.CALB = 0xff;
 
 
 /* 16bitタイマC0 (CCA, CCB, CCC, CCDの4本) */
 TCC0.PER = 10000;                  // カウンタ上限値
 TCC0.CCA = 5000;                   // (出力はPORTC.0)
 TCC0.CTRLB = 0b00010011;           // CCAEN, 単一傾斜PWM
 TCC0.CTRLA = 0b00000001;           // 前置分周器: clkPER
 
 /* 16bitタイマC1 (CCA, CCBの2本) */
 TCC1.PER = 500;                    // カウンタ上限値
 TCC1.CCA = 200;                    // (出力はPORTC.4)
 TCC1.CTRLB = 0b00010011;           // CCAEN, 単一傾斜PWM  
 TCC1.CTRLA = 0b00000001;           // 前置分周器: clkPER
 
 /* 16bitタイマD0 (CCA, CCB, CCC, CCDの4本) */
 TCD0.PER = 500;                    // カウンタ上限値
 TCD0.CCA = 200;                    // (出力はPORTD.0)
 TCD0.CTRLB = 0b00010011;           // CCAEN, 単一傾斜PWM  
 TCD0.CTRLA = 0b00000001;           // 前置分周器: clkPER
 
 /* 16bitタイマE0 (CCA, CCB, CCC, CCDの4本) */
 TCE0.PER = 10001;                  // カウンタ上限値
 TCE0.CCA = 5000;                   // (出力はPORTE.0)
 TCE0.CTRLB = 0b00010011;           // CCAEN, 単一傾斜PWM  
 TCE0.CTRLA = 0b00000001;           // 前置分周器: clkPER

}
今回はじめてソースコードをハイライト表示するSyntaxHighlighterってのを使ってみた。
割と良さげ。
~ おわり ~