2008年8月28日木曜日

Virtual PC 2007 がノートPCで遅い場合の対策

  • C:\Documents and Settings\username\Application Data\Microsoft\Virtual PC\Options.xml を改変.

の間に以下を追加する.



<enable_idle_thread type="boolean">true</enable_idle_thread>

  • <>は半角にしてください.
  • かなり快適になった.これなら使える.

2008年8月26日火曜日

Visual C++ 2008 Expressでダイアログベースなアプリを作りたい

Visual C++ 2008 Express (タダのやつ)はMFCが入ってない.
だから今までよく使ってた(というかこれしか知らない)ダイアログベースのアプリケーションが作れない.ちゃんと製品を買えってことらしい.タダほど怖いものはない.

参考
Visual C++ 2008 Express Edition をインストールしてみた - ヘタレな趣味の道
http://blogger323.blog83.fc2.com/blog-entry-272.html

BTE061C USBシリアル変換ケーブルをvmwareで使えるか

  • vmware上メニューに「Future Devices USBデバイス」が出てくるので,ONにする.
# lsmod (の一部)
ftdi_sio 37384 0
usbserial 35816 1 ftdi_sio
usbcore 146028 4 ftdi_sio,usbserial,uhci_hcd

# dmesg(の一部)
[30671.587223] usb 1-1: new full speed USB device using uhci_hcd and address 2
[30671.864147] usb 1-1: configuration #1 chosen from 1 choice
[30672.506578] usb 1-2: new full speed USB device using uhci_hcd and address 3
[30672.958196] usb 1-2: configuration #1 chosen from 1 choice
[30672.994393] hub 1-2:1.0: USB hub found
[30677.997793] hub 1-2:1.0: config failed, can't read hub descriptor (err -22)
[30683.004166] usbcore: registered new interface driver usbserial
[30683.004379] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
[30683.004552] usbcore: registered new interface driver usbserial_generic
[30683.004581] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial Driver core
[30683.032964] /build/buildd/linux-2.6.24/drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
[30683.033348] ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
[30683.034062] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: Detected FT232RL
[30683.035487] usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
[30683.035544] usbcore: registered new interface driver ftdi_sio
[30683.035623] /build/buildd/linux-2.6.24/drivers/usb/serial/ftdi_sio.c: v1.4.3:USB FTDI Serial Converters Driver

  • 最初,失敗するようだが,しばらくするとttyUSB0として認識されたっぽい.
  • まだ通信を確認してないので眉唾です.
追記
  • main.c

#include <stdio.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include "sio.h"

#define BUFLEN (64)
#define SIO_SPEED B115200

//#define SIO_DEVICE "/dev/ttyS0"
#define SIO_DEVICE "/dev/ttyUSB0"

#define SERVO_ID (1)

int
RSTorqueOnOff(int fd, short sMode)
{
unsigned char sendbuf[BUFLEN];
unsigned char sum;
int i;
int ret;

// バッファクリア
memset(sendbuf, 0x00, sizeof(sendbuf));

// パケット作成
sendbuf[0] = (unsigned char)0xFA; // ヘッダー1
sendbuf[1] = (unsigned char)0xAF; // ヘッダー2
sendbuf[2] = (unsigned char)SERVO_ID; // サーボID
sendbuf[3] = (unsigned char)0x00; // フラグ
sendbuf[4] = (unsigned char)0x24; // アドレス(0x24=36)
sendbuf[5] = (unsigned char)0x01; // 長さ(4byte)
sendbuf[6] = (unsigned char)0x01; // 個数
sendbuf[7] = (unsigned char)(sMode&0x00FF); // ON/OFFフラグ
// チェックサムの計算
sum = sendbuf[2];
for( i = 3; i < 8; i++ ){
sum = (unsigned char)(sum ^ sendbuf[i]);
}
sendbuf[8] = sum; // チェックサム

// 送信
ret = SioWrite(fd, sendbuf, BUFLEN);

return ret;
}

int
RSMove(int fd, short sPos, unsigned short sTime)
{
unsigned char sendbuf[28];
unsigned char sum;
int i;
int ret;

// バッファクリア
memset(sendbuf, 0x00, sizeof(sendbuf));

// パケット作成
sendbuf[0] = (unsigned char)0xFA; // ヘッダー1
sendbuf[1] = (unsigned char)0xAF; // ヘッダー2
sendbuf[2] = (unsigned char)SERVO_ID; // サーボID
sendbuf[3] = (unsigned char)0x00; // フラグ
sendbuf[4] = (unsigned char)0x1E; // アドレス(0x1E=30)
sendbuf[5] = (unsigned char)0x04; // 長さ(4byte)
sendbuf[6] = (unsigned char)0x01; // 個数
sendbuf[7] = (unsigned char)(sPos&0x00FF); // 位置
sendbuf[8] = (unsigned char)((sPos&0xFF00)>>8); // 位置
sendbuf[9] = (unsigned char)(sTime&0x00FF); // 時間
sendbuf[10] = (unsigned char)((sTime&0xFF00)>>8); // 時間
// チェックサムの計算
sum = sendbuf[2];
for( i = 3; i < 11; i++ ){
sum = (unsigned char)(sum ^ sendbuf[i]);
}
sendbuf[11] = sum; // チェックサム

// 送信
ret = SioWrite(fd, sendbuf, BUFLEN);

return ret;
}


int
main(int argc, char *argv[])
{
int ret;
int fd_sio;
unsigned char buf[BUFLEN];

memset(buf, 0, BUFLEN);

fd_sio = SioOpen(SIO_DEVICE, SIO_SPEED, CREAD | CLOCAL | CS8);
fprintf(stderr, "fd=%d\n", fd_sio);

ret = RSTorqueOnOff(fd_sio, 1);

ret = RSMove(fd_sio, 1000, 0);
usleep(2000000);
ret = RSMove(fd_sio, 0, 0);
usleep(2000000);

ret = RSTorqueOnOff(fd_sio, 0 );

SioClose(fd_sio);

return 0;
}


  • sio.c

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <termios.h>
#include <unistd.h>

#define BUFLEN (64)

int
SioOpen(char *dev, int speed, unsigned int c_flag)
{
int fd;
struct termios ios;

if((fd = open(dev, O_RDWR | O_NDELAY)) < 0) {
perror("SioOpen");
exit(-1);
}

if(!isatty(fd)) {
close(fd);
fprintf(stderr, "%s : is not a tty\n", dev);
exit(1);
}

memset(&ios, 0, sizeof(ios));

ios.c_cflag = c_flag;

cfsetispeed(&ios, speed);
cfsetospeed(&ios, speed);

if(tcsetattr(fd, TCSANOW, &ios) < 0) {
perror("tcsetattr");
exit(-1);
}

return fd;
}

int
SioClose(int fd)
{
return close(fd);
}

int
SioWrite(int fd, unsigned char *buf, int size)
{
int len;

len = write(fd, buf, size);
return len;
}

int
SioRead(int fd, unsigned char *buf)
{
int len;

fprintf(stderr, "SioRead\n");
len = read(fd, buf, BUFLEN);
return len;
}

TeXのスタイルファイルのパス


  • ~/.bashrcに書いておく.一番下に書いちゃ駄目かも.ちょっと上がいい.
export TEXINPUTS=./:/usr/share/texmf-tetex/source/latex//:
/usr/share/texmf/ptex/platex//:/usr/share/texmf-texlive/tex//
ここでは見やすく改行してるけど,改行せずに1行で書いてね.
ディレクトリの後ろを//にしておくと,サブディレクトリも探してくれる,らしい.

  • 設定を再読み込みさせる.
source ~/.bashrc

soul.styがないと言われる

# cd /usr/share/texmf-tetex/source/latex/soul
# sudo make

2008年8月25日月曜日

vmwareのubuntuでe-mobile経由でネットワーク接続する手順

ubuntu キーバインドをEmacsライクに変更

gconf-editorを起動して,
/desktop/gnome/interface/gtk_key_theme を Emacs に書き換える.

2008年8月22日金曜日

ubuntuでWindowsの共有フォルダにアクセスする方法

  • 上バーの場所→ホーム・フォルダを開く
  • メニューのファイル→サーバへ接続
  • サービスの種類:Windows 共有
  • サーバ名:WindowsのIPアドレス,またはホスト名
  • 共有する場所:空白
  • フォルダ:Windowsの共有フォルダ名
  • ユーザ名:ユーザ名
  • ドメイン:あれば記入
  • ブックマークを追加する:チェックを入れると,あとで便利
  • ブックマーク名:適当に
結局,共有する場所,ってのは何なんだろう.

2008年8月20日水曜日

vmwareのubuntu8.04の起動時のエラー

「この仮想マシンで VMware Tools パワーオンスクリプトが正常に実行されませんでした。
仮想マシンにカスタムされたパワーオンスクリプトが構成されている場合は、スクリプトにエラーがないか確認してください。」
  • 対策法 3'を採用する
    • ゲスト OS 上で sudo toolbox を実行して、スクリプトを使わないよう GUI から設定
  • # sudo toolbox
  • Scriptsタブ内の,Script Event
    • Suspend Guest Operating SystemでUse Scriptのチェックを外してApplyをクリック
    • Resume Guest Operating System, Shut Down Guest Operating System, Power On Guest Operating System でも同様に.

iTunes不調

最近,iTunesが正常終了しないことが多々ある.どうやらiTunesを一緒にインストールされるBonjourというプログラムが原因らしいことが分かった.プレイリストを共有する場合などに必要らしいが私には不要なので削除した.
簡単な方法としては,以下の2つが考えられる.
  1. アプリケーションの追加と削除から,Bonjourを削除
  2. サービスを止める
私は1を実行し,快適になった.iPod shuffleとの同期にも影響は出ていない.

参考:

最近のiTunesは不調続きだ.音楽聴くだけのアプリで何故あんなに重いのか.でも便利だしなぁ.

T60クリーンインストール

  • HDDの性能評価
    • BIOSでConfig→Serial ATA →Compatibilityを選択した場合

--------------------------------------------------
CrystalDiskMark 2.1 (C) 2007-2008 hiyohiyo
Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

Sequential Read : 71.090 MB/s
Sequential Write : 57.654 MB/s
Random Read 512KB : 36.700 MB/s
Random Write 512KB : 40.073 MB/s
Random Read 4KB : 0.636 MB/s
Random Write 4KB : 1.088 MB/s

Test Size : 100 MB
Date : 2008/08/17 9:41:45


  • まずインテル マトリクス・ストレージ・マネージャ・ドライバー をインストール
    • drivers\win\imsm\prepare\install.cmd を実行
  • 再起動
  • BIOSで,Config→Serial ATA →AHCIを選択した場合
--------------------------------------------------
CrystalDiskMark 2.1 (C) 2007-2008 hiyohiyo
Crystal Dew World : http://crystalmark.info/
--------------------------------------------------

Sequential Read : 70.299 MB/s
Sequential Write : 68.680 MB/s
Random Read 512KB : 37.160 MB/s
Random Write 512KB : 40.002 MB/s
Random Read 4KB : 0.630 MB/s
Random Write 4KB : 1.080 MB/s

Test Size : 100 MB
Date : 2008/08/17 10:35:40

  • 結論:AHCIの方がSequential Writeにおいて性能向上が見られた.