2009年4月29日水曜日

Realtek HD(High Definition) Audio モノラル音声がならない

WindowsXP
Realtek HD(High Definition) Audio
M2A-VM HDMI
M2A-VM
リアパネルLineOut出力 スピーカー2CH 
-----------
音が変なんです。
ニュース動画を見たりすると、ナレーションがこもっているような、お風呂場のように反響しているというか、水槽の中でしゃべっていると表現するのか、はたまたファミコンゲームの音みたいピコポコ音が重なっていると表現するのかうまく言い表しにくいのですが、サウンドデバイス上での話ならイコライザが利いているのかエフェクトが利いているのか、なんかそんな変な音がするのです。かといって、イコライザもエフェクトもすべてOFFにしているのですが全く改善しません。

ネット上でも同じ症状ではまっている人がいるようなのですが、さして気にしていない人もいますし、他のUSB接続の外付けスピーカーをつないだりして使っているようで、有用な解決方法がまったく見つかりません。

当然、最新ドライバにもしてみたのですが、いまだ解決策が見えません。
XPも再インストールしていますし、M2A-VMでもM2A-VM HDMIでもまったく同じ症状で、当然スピーカーを交換しても同じ症状。


ふと、音の定位がセンターぴったりに来ていると音が極端に小さくなっていることに気がつき、テスト用音声データを作って見るとやはりセンターに定位する音は全く鳴らないようです。


Realtek HD(High Definition) Audioを使っている人、この音声再生できますか?

音がやや大きいのでボリュームに気をつけてください。
[WAV]左右に音源が移動する
正常:同じ音量で音源が左右に移動する
異常:音源が中心から移動せず音量が上がったり無音になる

[WAV]Windows XP Startup モノラル音声
正常:Windows XP の起動時の音声が流れる
異常:何もならない 無音

『異常』に相当する方、他のPCで上記音声を再生してみてください。ちゃんと再生できるはずです。

きっとこれはRealtekのバグなんでしょうねぇ。


[2010.4.6 追記]

その後、勝手にこの症状が治っていました。
たぶんWindowsUpdateで治ったようなので、この症状が出ている人は、一度WindowsUpdateを完全にやってみてください。


.

2009年4月18日土曜日

FreeBSD7 JDK1.6インストール Java JDK1.6.0.3p4_10

FreeBSD 7.1/i386
----------------------------
Pentium2/400MHz
Memory 192M
コンパイル・インストール約8-10時間
----------------------------
■jdk1.6インストール けっこう面倒くさい(>_<"

javaをコンパイル実行するためにはjdkをインストールします。
しかしながら、javaのライセンス許諾のためにportsからのmake installだけではインストールできず、Sun Microsystemsより指定されたファイルをライセンス許諾した後で手動でダウンロードしなければなりません。
また、FreeBSD用のパッチも必要でこれも手動でライセンス許諾とダウンロードが必要です。

あと、コンパイルには
●2.5GByteの空きハードディスク領域(#duで確認)
●768MByte以上のスワップ領域(#pstat -sで確認)
が必要です。
私の場合、スワップ領域が足りずにコンパイル途中で止まってしまいました。

■自分でダウンロードするもの
ダウンロードに必要なファイルはコンパイル中に表示されますので、その文章中にあるファイルをダウンロードしてください。バージョンが代わればダウンロードするものもかわりますので以下の記載のままとは限りません。
ダウンロードしたファイルは
/usr/ports/distfiles/
に保存します。

●http://www.java.net/ より fetch でダウンロード
    jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
    jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
    jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
●http://java.sun.com/ より ブラウザを使ってダウンロード
    tzupdater-1_3_12-2009a.zip

●http://www.FreeBSDFoundation.org/ より ブラウザでダウンロード
    
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2

●http://www.eyesbeyond.com/freebsddom/java/jdk16.html
 より ブラウザでダウンロード
    bsd-jdk16-patches-4.tar.bz2

後はmake install でインストールされます。

■jdk1.6インストール手順 実録(笑)
実際にmake install してみて、そのメッセージにしたがって必要なファイルをダウンロードしてきます。


#cd /usr/ports/java/jdk16
#make install
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Options for jdk 1.6.0.3p4_10 x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x [ ] DEBUG Enable debugging support x x
x x [ ] IPV6 Enable IPv6 support x x
x x [ ] WEB Enable the browser plugin and Java Web Start x x
x x [ ] POLICY Install the Unlimited Strength Policy Files x x
x x [X] TZUPDATE Update the time zone data x x
x x [ ] JAIL Port is being built within a jail x x
tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
x [ OK ] Cancel x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
IMPORTANT: To build the JDK 1.6.0 port, you should have at least
2.5Gb of free disk space in the build area!


Due to licensing restrictions, certain files must be fetched manually.

Please download the Update 3 Source from
http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
and the Source Binaries from
http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
and the Mozilla Headers from
http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
.

Please open http://java.sun.com/javase/downloads/index.jsp
in a web browser and follow the "Download" link for
"JDK US DST Timezone Update Tool - 1_3_12" to obtain the
time zone update file, tzupdater-1_3_12-2009a.zip.

Please download the patchset, bsd-jdk16-patches-4.tar.bz2, from
http://www.eyesbeyond.com/freebsddom/java/jdk16.html.

Please place the downloaded file(s) in /usr/ports/distfiles
and restart the build.

*** Error code 1

Stop in /usr/ports/java/jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.


てなことで、Sun Microsystemsよりファイルをダウンロードしてきなさいといわれましたのでlynxあたりでダウンロードを試みます。
lynxは先にインストールしておいてください。
    #cd /usr/ports/www/lynx
    #make install clean


#cd /usr/ports/distfiles
#fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
#fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
# fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
# lynx http://java.sun.com/javase/downloads/index.jsp


JDK DST Timezone Update Tool - 1.3.12

The tzupdater tool is provided to allow the updating of installed JDK/JRE images with more recent
timezone data in order to accommodate the latest timezone changes. Learn more

Download<<-ここを[Enter]



Register Now[Enter]
必要事項(required)を記入し
submit[Enter]

IDとパスワードを入力して
Log In and Continue[Enter]

チェックを入れて
[X] I agree to the Java SE Timezone Updater License Agreement

continue[Enter]

ライセンスについての但し書きが表示されて

continue[Enter]

Java SE Timezone Updater 1.3.12
tzupdater-1_3_12-2009a.zip 0.25 MB [Enter]

Save to Disk[Enter]

ファイル名を確認して[Enter]

q
(linx終了)


ファイル名がおかしければ修正します。
tzupdater-1_3_12-2009a.zip

#lynx http://www.eyesbeyond.com/freebsddom/java/jdk16.html

download the latest BSD JDK 1.6.0 patchset [Enter]
ACCEPT [Enter]
save to disk [Enter]


次のファイルがあるか確認します。


#ll
-rw-r--r-- 1 root wheel 2116124 Feb 27 06:12 jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
-rw-r--r-- 1 root wheel 8608204 Feb 27 06:13 jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
-rw-r--r-- 1 root wheel 116791442 Feb 27 06:13 jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
-rw-r--r-- 1 root wheel 261842 Apr 18 12:09 tzupdater-1_3_12-2009a.zip
-rw-r--r-- 1 root wheel 960930 Apr 18 14:12 bsd-jdk16-patches-4.tar.bz2

#cd /usr/ports/java/jdk16
#make install clean

Do you agree to the above license terms? [yes or no] yes


待つこと10分?
何も表示がかわらないけど我慢。


lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Options for cups-base 1.3.9_3 x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x [ ] GNUTLS Build with GNUTLS library x x
x x [ ] PHP Build PHP support x x
x x [ ] PYTHON Build PYTHON support x x
x x [ ] LIBPAPER Build with libpaper support x x
x x [ ] DNSSD Build with DNS_SD (avahi) support x x
x x [ ] PAM Build with PAM support x x
x x [ ] LDAP Build with LDAP support x x
x x [ ] DBUS Build with DBUS support x x
x x [ ] XDG_OPEN Build with XDG_OPEN as browser x x
x x tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
x [ OK ] Cancel x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj


"cups-base"とは"Common UNIX Printing System"で、
このもともとの名前は"cups-lpr"ということで、印刷用モジュールです。
とくにどの言語からもつかわないのでそのまま[OK]と


lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Options for diablo-jdk 1.6.0.07.02_4 x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x [ ] POLICY Install the Unlimited Strength Policy Files x x
x x [X] TZUPDATE Update the time zone data x x
tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
x [ OK ] Cancel x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

そのまま[OK]

===> Vulnerability check disabled, database not found
===> Found saved configuration for diablo-jdk-1.6.0.07.02_4

Because of licensing restrictions, you must fetch the distribution
manually.

Please access

http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2

with a web browser and "Accept" the End User License Agreement for
"Caffe Diablo 1.6.0".

Please place the downloaded file(s) in /usr/ports/distfiles.

*** Error code 1

Stop in /usr/ports/java/diablo-jdk16.
*** Error code 1

Stop in /usr/ports/java/diablo-jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.


おーーーとまった(^-^;;

diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2

が必要らしい。
ただ同意書に同意しないと持ってこれない。

再びdistfilesフォルダへダウンロードする
#cd /usr/ports/distfiles/

#lynx
http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
lynx: No match.

と表示が出る場合はトップページからダウンロードを試みます。


#lynx http://www.FreeBSDFoundation.org/


Diablo Caffe JDK 1.6.0-7 FreeBSD 7.x/i386 End-User 61M
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2

を選んでダウンロードと。
[X] I agree to the terms of this license agreement.Submit [Enter]

62591k あるそうです。結構大きいなぁ。

再びコンパイル

#cd /usr/ports/java/jdk16
#make install clean


待つこと8時間?


 :

Packing /usr/ports/java/jdk16/work/control/build/bsd-i586/j2sdk-image/jre/lib/rt.jar 47552100 bytes
Killed
gmake[3]: *** [pack-jars] Error 1
gmake[3]: Leaving directory `/usr/ports/java/jdk16/work/install/make/pack'
gmake[2]: *** [pack-sdk] Error 2
gmake[2]: Leaving directory `/usr/ports/java/jdk16/work/install/make/pack'
gmake[1]: *** [all] Error 1
gmake[1]: Leaving directory `/usr/ports/java/jdk16/work/install/make'
gmake: *** [install-build] Error 2
*** Error code 2

Stop in /usr/ports/java/jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.


止まりました。。。
もう一回やってもまったく同じところで止まります。
何ででしょう。

ぐーぐる先生に聞いてみたら、
「resource limit killed off the pack」
リソース不足?
うん。。。確かに非力なマシンです。
どのリソースだろうと調べてみる。

#dmesg

swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager: out of swap space
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
pid 62595 (pack200), uid 0, was killed: out of swap space

あーーーーーーーーーーーーーーーーーーーーーー
これか。
スワップスペースが足りない。どーすんだ?

スワップ領域の表示
# pstat -s
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 258200 10212 247988 4%

現在256M。やっぱり少ないのか。
スワップ領域。増やせないのだろうか。
ちょっと探してみたら簡単に増やせるらしい。

Swap領域を +512Mする
#dd if=/dev/zero of=/usr/SWAPFILE bs=1m count=512

待つこと5分。

rc.confに次の行を追加
[/etc/rc.conf]
swapfile="/usr/SWAPFILE"

再起動

#reboot

# pstat -s
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 258200 0 258200 0%
/dev/md0 524288 0 524288 0%
Total 782488 0 782488 0%

増えた!

あらためて

#cd /usr/ports/java/jdk16
#make install


待つこと4時間。

#rehash


#java -version
java version "1.6.0_07"
Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)
Diablo Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

できました(^o^

最後に環境変数をセットします。
[~/.profile,~/.csh,~/.zsh 自分の環境に合わせて]

export JAVA_HOME=/usr/local/diablo-jdk1.6.0
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:/usr/local/jdk1.6.0/lib/tools.jar

バージョンが変わると、名前や保存場所が変わるとおもわれますので、
いずれの環境変数も実際にそのフォルダやファイル名を確認して記述してください。


■javaの動作確認 "Hello World!"を表示させる

次に動作確認です。
javaではファイル名とクラス名を同じにしておかなければなりません。
また、それらの名前は大文字と小文字を判別することに注意してください。
テスト用のコードを記述します。
[Test.java]

class Test{
public static void main(String args[]){
System.out.println("Hello Java World.");
}
}


コンパイルと実行を行います。

#javac Test.java
#java Test
Hello Java World.


これでOKです。

もし、クラス名とファイル名が異なっていた場合や、
#java Test.class
のように拡張子まで指定した場合、次のようなエラーが発生します。

#java test
Exception in thread "main" java.lang.NoClassDefFoundError: test
Caused by: java.lang.ClassNotFoundException: test
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)


クラス名とファイル名の大文字・小文字をよく確認して修正してください。


Be Careful When You Type

Type all code, commands, and file names exactly as shown. Both the compiler (javac) and launcher tool (java) are case-sensitive, so you must capitalize consistently.

HelloWorldApp != helloworldapp

The Java Tutorials



.

2009年4月16日木曜日

FreeBSD8.0

まだかな。。。
2011年あたりだろうか。
マイナーバージョンアップが年2回
メジャーバージョンアップが2年に1回ですよね。
そういえば私が始めてFreeBSDを使ったときは
FreeBSD4.2でした。
えーと。2001年かな?
おーーーもう8年前にもなる。
ISDNでInfospherでIP8を取りサーバーを構築し公開していました。

なつかしい。。。
8年でメジャーバージョンが3あがってるから、やっぱり2011年かなぁ。

.

2009年4月15日水曜日

Apache22 Perl Ruby PHP python Javaの速度比較 ベンチマーク

AMD GeodeNX1500/1050MHz
ASRock K7VT4A PRO
------------------------------
FreeBSD7.1/i386
Apache2.2.11
PHP5.2.9
Ruby1.8.7
Ruby1.9.1
Perl5.8.9
Python2.5.4
Java(JDK1.6.0)
GCC4.2.1
------------------------------
Apache上で動作させたスクリプトは実際のところどのスクリプトが早く、
速度差はどのくらいなのでしょうか?
ネットで検索してみても古い記事しかみつからず、PHP(PHP3)がもっとも遅い
といった結果しか見つけられませんでした。
しかしながら、PHPも今ではPHP5にバージョンアップされ、Zend社のランタイムコンパイラが内蔵されたことから、もっと高速化されているはずです。

簡単な例ながらベンチマークテストを行った結果次のようになりました。

1から100万までの総和の計算
C++0.0083sec (参考値)
PHP5.20.53sec
Java1.60.59sec
Perl5.81.38sec
Ruby1.91.49sec
Python2.51.59sec
Ruby1.82.69sec


C++は置いといて、この結果からするとPHP5.2がもっとも高速でした。
Ruby1.9が最も高速だと思っていましたが、Perlよりも遅いという結果でした。

さて、この結果はApacheへの1リクエストについての時間相当になるのですが、実際Apache上から呼び出されたときには、そのスクリプトが実行されるまでのオーバーヘッドとスクリプトの終了処理が発生するわけで、小さなトランザクションが多量に発生した場合の実行速度とはまったく別の結果が出るはずです。

この点についてはまた後ほど評価いたします。


次のコードでテストを行いました。
条件をなるべくそろえるために、同じようなコードになるようにしています。

PHP
[bench.php]

<?
$time_start = microtime(TRUE);

$sum = 0;

for($i = 0;$i <= 1000000;$i ++)
{
$sum = $sum + $i;
}
echo "Result:$sum<br>\n";

$time_end = microtime(TRUE);
$time_use = $time_end - $time_start;

echo "Start:$time_start<br>\n";
echo "End:$time_end<br>\n";
echo "Use:$time_use<br>\n";

?>


Perl
[bench.pl]

#!/usr/local/bin/perl
##
## bench.pl
##
use Time::HiRes;


print "Content-type: text/plain; charset=iso-8859-1\n\n";

$usecStart = Time::HiRes::gettimeofday();

$i = 0;

for($i = 0;$i <= 1000000;$i ++){
$sum = $sum + $i;
}

$usecEnd = Time::HiRes::gettimeofday();
$usecUse = $usecEnd - $usecStart;

print "Result:${sum}<br>\n";
print "Time:${usecUse}<br>\n";


Ruby
[bench.rb]

#!/usr/local/bin/ruby

print "Content-Type: text/html\n"
print "\n"

tmStart = Time.now

sum = 0
i = 1
while i <= 1000000
sum = sum + i
i = i + 1
end

tmEnd = Time.now

print "Result:#{sum}<br>\n"

tm = tmEnd - tmStart

fTime = tm.to_f
print "Sec:#{fTime}"



Python
[bench.py]

#!/usr/local/bin/python
##
## bench.py
##
import time

print "Content-type: text/plain; charset=iso-8859-1\n\n"

print "Hello World"

msecStart = time.time()


sum = 0
i = 0

while i <= 1000000:
    sum = sum + i
    i = i + 1

msecEnd = time.time()

print "Start:" , msecStart
print "End:" , msecEnd

msecUse = msecEnd - msecStart

print "Time:" , msecUse



Java (JDK1.6.0 diablo-caffe)

class Bench{
public static void main(String args[]){

long lStart,lEnd,lUse;

lStart = System.currentTimeMillis();

long lCount,lSum;
lSum = 0;
for(lCount = 0;lCount <= 1000000;lCount ++)
{
lSum = lSum + lCount;
}

lEnd = System.currentTimeMillis();

System.out.print("Result:");
System.out.println(lSum);

lUse = lEnd - lStart;

System.out.print("Time:");
System.out.println(lUse);



}
}



C++ (GCC4.2.1)
[bench.cpp]

#include <stdio.h>
#include <string.h>
#include <time.h>

int main()
{
timespec tsStart,tsEnd,tsUse;

memset(&tsStart,0,sizeof(timespec));
memset(&tsEnd,0,sizeof(timespec));
memset(&tsUse,0,sizeof(timespec));


clock_gettime(CLOCK_REALTIME,&tsStart);

int i = 0,sum = 0;

for(i = 0;i <= 100000000;i ++)
{
sum = sum + i;
}

clock_gettime(CLOCK_REALTIME,&tsEnd);

double dStart,dEnd,dUse;

dStart = (double)tsStart.tv_sec + (double)tsStart.tv_nsec * 0.000000001;
dEnd = (double)tsEnd.tv_sec + (double)tsEnd.tv_nsec * 0.000000001;
dUse = dEnd - dStart;

printf("Start:%f\n",dStart);
printf("End:%f\n",dEnd);
printf("Use:%7.2f\n",dUse);
}
----------------

#g++ bench.cpp
#./a.out

C++は概算です。

.

2009年4月13日月曜日

ubuntu su パスワード 認証失敗

ubuntu8.10
su -
パスワード 認証失敗
--------------------------------
この記事は移動しました。
ubuntu su パスワード 認証失敗


ubuntuはインストール直後はrootアカウントにパスワードが設定されていないらしい。

rootアカウントのパスワードを設定するには
端末を起動する。
[アプリケーション]-[アクセサリ]-[端末]

$sudo su -
[sudo] password for daimajin: (インストール時に設定したパスワード)
#passwd
新しいUNIXパスワードを入力してください: (rootアカウントのパスワード)
新しいUNIXパスワードを再入力してください:(rootアカウントのパスワード)




.

ubuntu8.10 cd label レーベルを作ってみました

ubuntu 8.10 cd label
レーベルを作ってみました

この記事は移動しました
ubuntu 8.10 cd label
レーベルを作ってみました



FreeBSDとはまったく関係ありませんが。。。
Pentium3/800MHz メモリ256Mなノートパソコンがありまして、これで快適な環境は作れないものかと、いまさらubuntuを入れてみました。

レーベル印刷するのにレーベルを作りましたのでここで公開することにしました。

ubuntu。インストールめちゃめちゃ簡単で驚きました。
FreeBSDのデスクトップ環境を作るのと比べるとものすごい簡単。
インストール手順

1インストール用のディスクを入れて起動。
2言語選択 日本語
3タイムゾーン選択 tokyo
4キーボード選択 てきとー
5パーティーション選択 全部
6ユーザー名とパスワードを入れて。

おしまい。こんだけ。
えーーーーーーーーーーー!
WindowsXPのインストールよりも簡単な気がする。

動作も思ったよりも軽い。
このマシンにWindowsXP+ウイルス対策ソフトなぞいれたらもう動きませんからね。
それを考えると、ありがたいものですm(_ _)m

あ。レーベル。
色は3色作ってみました。
オレンジ。黄色。赤。
ubuntuのイメージカラーはやっぱりこのオレンジ。
印刷するとちょっとかっこいい気がする。
よく見るとへんなところで改行しているのは秘密。

ubuntu cd lebel レーベル印刷 オレンジubuntu810 cd label orange レーベルオレンジ

ubuntu cd lebel レーベル印刷 黄色ubuntu810 cd label yellow レーベル黄色

ubuntu cd lebel レーベル印刷 赤ubuntu810 cd label red レーベル赤

.

2009年4月12日日曜日

FreeBSD sshdのポートを複数あけるには

FreeBSD7.*
FreeBSD6.* たぶん
----------------------------------
sshは通常ポート番号が22で1ポートのみ接続できます。
しかし、自宅サーバーが2台あり、外のインターネットから自宅サーバーにアクセスするのにポート番号が同じでは、ルーターに設定できません。

またポート22番をあけたとたんに不正アクセスの嵐がサーバーに負担をかけます。
/var/log/auth.log
を見るとあちらこちらからログイン名を変えて手当たり次第にアタックをかけてきています。
ポート番号をずらすことでそういう不正アクセスがかなり軽減できます。

任意のポートへのポートマッピングで対応できそうですが、やってみるとできません。
たとえば、

WAN:1022→192.168.0.10:22
WAN:2022→192.168.0.20:22

のような設定です。
セキュリティー上、sshdは実際に接続されたポート番号と接続しようとしていたポート番号とが異なると遮断するようです。
つまり、ルーターで外向きに開けるポート番号22だけだと、サーバー1台しか接続できないのです。

そこで、自宅内で接続するようなときは、port 22で接続し、外から接続するときは、

WAN:1022→192.168.0.10:1022
WAN:2022→192.168.0.20:2022

のように接続します。

ということでsshdの設定を行います。

sshd_configを編集します。
同じような名前でssh_config(dが無い)がありますが、こちらはsshクライアント側の設定に使用するものなので間違えないようにします。

192.168.0.10:1022にする場合
[/etc/ssh/sshd_config]


#Port 22
Port 22
Port 1022


次に
sshdをリブートします。

#/etc/rc.d/sshd restart

これで両方のポートからログインできるはずです。

ちなみにポート毎にsshdプロセスが起動するので、どちらかがコケても接続できよりフェールセーフな構成にできます。

TeraTerm等で接続するときは、デフォルトのポート番号が22になっているところを、あけたポート番号、上記の例では1022等にして接続します。

■おまけのメリット
グローバルIPアドレスを取得しポート22を空けたとたん、中国やらアメリカやらロシアやら世界中から不正アクセスを受けます。1秒ごとに1アクセスぐらいでしょうか。
ところが、ポート番号を変えただけで全く不正アクセスを受けなくなりました。

見つけたIPのポート全てのポートスキャンはしないようです。

セキュリティーを気にしてSSHのポート番号を変更しているサーバーは、そのセキュリティーホールを探すのよりも、他のセキュリティーの甘いサーバーを探したほうが楽だということでしょうか。

SSHのポート番号変更はとてもオススメです。



.

2009年4月10日金曜日

emacsのインストール

FreeBSD7.1
----------------------------------
make.confの設定 WITHOUT_X11=yes の続き

■emacsのインストール

viでの編集はとても大変なので、もう少し扱いやすいemacsというスクリーンエディタをインストールします。マウスのホイールでの上下スクロールはできませんが、Windows上のエディタになれた人なら、こちらのほうが扱いやすいと思います。

FreeBSDのPortsというアプリケーション管理システムを使ってインストールを行います。


#cd /usr/ports/editor/emacs
#make install clean


#rehash

#emacs [file name]

これで起動します。

終了 [Ctrl]+[x][c] (Ctrlを押しながら[x]押して[c]を押す)
保存 [Ctrl]+[x][s]
一文字削除 [Ctrl]+[d]

コピー・ペースト
コピー 開始位置[Ctrl]+[Space]  終了位置[Esc]-[w] ([Esc]を押して離して[w])
ペースト [Ctrl]+[y]

ruby1.8 ruby-gemsと一緒にインストールへ続く

.

rc.confの設定 自動起動スクリプト

FreeBSD7.1
----------------------------------

8.viの使い方
の続き

■sendmailの停止

インストール直後はメールサーバーにsendmailがインストールされており、自動起動するようになっています。そのため、ホスト名が解決できず起動に時間がかかったりすることがあります。
そこで、sendmailを停止しておきます。
rc.confの最終行に次のように記述します。

[/etc/rc.conf]


sendmail_enable="NO"
sendmail_submit_enable="NO"
sendmail_outbound_enable="NO"
sendmail_msp_queue_enable="NO"





■make.confの設定 WITHOUT_X11=yes

続いてmake時のコンパイルオプションを変更しておきます。
サーバー用途でマシンを構築する場合、今後インストールするソフトにX Windowの重厚なライブラリもコンパイルされると非常に時間がかかるようになります。
それを回避するためにも、makeオプションにXWindowを使わないことを明示的に指定しておきます。

WITHOUT_X11=yes

[/etc/make.conf]


WITHOUT_X11=yes

2009年4月9日木曜日

viの使い方

■viの使い方

viには[コマンドモード]と[入力モード]があります。
両方のモードを行き来することでテキストを編集していきます。

■コマンドモード
viをはじめて起動するとコマンドモードになっています。
そのため文字を入力しても文字が入力されません。
次のコマンドで操作します。







:qviを終了
:wファイルを保存
x一文字削除
a入力モードへ移行 カーソルの後ろから挿入(append)
i入力モードへ移行 カーソルの前に挿入(insert)
[shift]+j行末の改行コードの削除(join)


■入力モード
文字がやっと入力できます。
ただし、ここでは削除はできません
文字を消そうとして[DEL][BS]などを連打すると、「^?」が表示されたり、カーソルが移動したりして慌てます。
[ESC]キーを押しコマンドモードに移行し文字を消してください。

わけがわからなくなってもとりあえず[ESC]を押します。
[ESC]キーでコマンドモードへ移行できます。

.

SSH2の設定 リモートログインするには

FreeBSD7.1
----------------------------------
ネットワークの設定の続きです

■SSHDの起動設定

インストール直後はSSHDが起動していないため、今後リモートログインするために
SSHDを自動起動するように設定を変更します。
/etc/rc.conf
の最終行に
sshd_enable="YES"
と追記します。
ここでエディタにviを使用しますが、Windowsのエディタになれている人、
初めて使う人にはとてもなれないものです。
viの使い方は次の記事にざっくり説明します。

[/etc/rc.conf]

#vi /etc/rc.conf

sshd_enable="YES"



続いてクライアント側、Windows等からサーバーに接続するための設定を行います。

SSH2でサーバーに接続する Teraterm4へ続く

.

Ruby1.8.7+ruby18-gemsのインストール

FreeBSD7
Ruby1.8.7
ruby18-gem1.3.1
-----------------------
emacsのインストールの続き

■Ruby1.8.7のインストール

Ruby1.9はかなり速くなっているという。
でもgemsを使うのならruby1.8.7そのまま使いましょう。
ruby-gemをインストールすると自動的にインストールしてくれます。



#cd /usr/ports/devel/ruby-gem
#make install clean


===> Registering installation for ruby18-gems-1.3.1
===> Cleaning for ruby+oniguruma-1.8.7.72_1,1
===> Cleaning for oniguruma-2.5.8
===> Cleaning for ruby18-gems-1.3.1



ntpdの設定 時刻合わせ NTPサーバーへ続く


.

2009年4月8日水曜日

ネットワークの設定

FreeBSD7.1

・IPアドレスの設定
----------------------------------
インストール後の設定の続き


■IPアドレスの設定
SSHでリモートログインするためにも、今後のアプリケーションのインストール
のためにも、サーバーとしてサービスを提供するためにもネットワークの設定が
必要です。
ここでは、Lanの設定を行います。

ネットワークの環境を次のものとして設定していきます。
各自のネットワークの状態に合わせて適宜変えて設定して下さい。

ルーター:192.168.0.1
DNSサーバー:192.168.0.1
サーバー名:tara
IPアドレス:192.168.0.80


#sysinstall





[Configure]-[Networking]の順に選びます


[Space]を押します。



[Ethernet card]と表示さているものを選択します。
ここでは、
[re0 RealTek 8139C+/8169/8169S/8110S PCI Ethernet card]
を選択しています。
[Enter]


Do you want to try IPv6 configuration of the interface?
[ No ]を選びます


Do you want to try DHCP configuration of the interface?
[ No ]を選びます



適宜入力します。



[OK]

[X Exit]を選択し[Enter]

[X Exit]を選択し[Enter]

[X Exit Install]を選択し[Enter]


#reboot[Enter]




SSH2の設定 リモートログインへ続く

.

インストール後の設定

FreeBSD7.1

・最初のログイン
・ユーザーの追加
----------------------------------

FreeBSD7.1のインストールの続き


■最初のログイン
サーバーに電源を入れるとログイン画面が表示されます。


FreeBSD/amd64 (tara) (ttyv0)

login:


と表示されます。
loginに"root"
Passwordにインストール時に設定したパスワードを入力します。


FreeBSD/amd64 (tara) (ttyv0)

login:root[Enter]
Password:*****[Enter]

Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
The Regents of the University of California. All rights reserved.

FreeBSD 7.1-RELEASE (GENERIC) #0: Thu Jan 1 08:58:24 UTC 2009

Welcome to FreeBSD!

Before seeking technical support, please use the following resources:

o Security advisories and updated errata information for all releases are
at http://www.FreeBSD.org/releases/ - always consult the ERRATA section
for your release first as it's updated frequently.

o The Handbook and FAQ documents are at http://www.FreeBSD.org/ and,
along with the mailing lists, can be searched by going to
http://www.FreeBSD.org/search/. If the doc distribution has
been installed, they're also available formatted in /usr/share/doc.

If you still have a question or problem, please take the output of
`uname -a', along with any relevant error messages, and email it
as a question to the questions@FreeBSD.org mailing list. If you are
unfamiliar with FreeBSD's directory layout, please refer to the hier(7)
manual page. If you are not familiar with manual pages, type `man man'.

You may also use sysinstall(8) to re-enter the installation and
configuration utility. Edit /etc/motd to change this login announcement.

#■


このように表示され入力状態になります。

ログアウトするには
#exit

サーバーをシャットダウンするには
shutdown -p now
を使います。


#shutdown -p now
Shutdown NOW!
shutdown: [pid 2347]
#
*** FINAL System shutdown message from boon@kappa.local ***
System going down IMMEDIATELY



System shutdown time has arrived

と表示が出て電源が切れます。

■ユーザーの追加

次にユーザーを追加します。
サーバーの画面上で操作すると画面が小さく、操作がしにくく、
また操作した内容がすぐに消えてしまいとても苦痛に感じるはずです。
通常サーバーは、サーバー自体で操作するのではなく、遠隔操作して使用します。
そこでSSHというもので、Windowsなどの他のPCから接続し、コマンドを打ちながら
操作します。これだと画面に表示された内容をスクロールバックして再表示
でき、画面上でコピーペーストできるようになるので、格段と扱いやすくなります。


SSHを使用するためには、rootアカウントとは別にユーザーアカウントというものを
作り、それを使用してログインするようにします。


#adduser[Enter]
Username:daimazin[ユーザー名を入力する]
Full name:dai mazin[フルネームを入力する]
Uid (Leave empty for default):[Enter]
Login group [daimazin]:[Enter]
Login group is daimazin. Invite daimazin into other groups? []:wheel[重要wheel Enter]
Login class [default]:[Enter]
Shell (sh csh tcsh nologin) [sh]: tcsh[tcsh Enter]
Home directory [/home/daimazin]:[Enter]
Home directory permissions (Leave empty for default):[Enter]
Use password-based authentication? [yes]:[Enter]
Use an empty password? (yes/no) [no]:[Enter]
Use a random password? (yes/no) [no]:[Enter]
Enter password:*******[パスワードを設定します Enter]
Enter password again:*******[同じパスワードを入力します Enter]
Lock out the account after creation? [no]:
Username : daimazin
Password : *****
Full Name : dai mazin
Uid : 1002
Class :
Groups : daimazin
Home : /home/daimazin
Home Mode :
Shell : /bin/tcsh
Locked : no
OK? (yes/no): yes[yes Enter]
adduser: INFO: Successfully added (daimazin) to the user database.
Add another user? (yes/no): no[no Enter]
Goodbye!



これでdaimazinというアカウントが作成できました。
途中、グループにwheelというのを指定しましたが、これは、管理者グループで
このグループに参加させておくことで、インストールや設定などを行えるようになります。

ネットワークの設定へ続く

.

FreeBSD7.1のインストール

FreeBSD7.1インストール
サーバー構築
AMD AthronX2/4850e
GIGABYTE MA78GPM-DS2H
------------------------------------------
FreeBSD7.1のダウンロードの続き

BIOSの設定で起動デバイス順序でCD/DVDドライブを最優先に変更しておきます。


FreeBSD7.1のダウンロードで作成したメディアをサーバーに入れDVD-Rから起動します。


サーバーを起動します。

FreeBSDの起動画面が表示されます。
インストーラーが開始されます。






以下キーボードのカーソルキー(矢印キー)で操作します。
上下左右のキーで選択し、キーボードの[Enter]が決定です。
しばらくすると次の画面が表示されます。


■Country Selection
[110 Japan]を選択します。





[OK]を選びキーボードの[Enter]を押します。

■System Console Keymap
[Japanese 106 Japanese 106 keymap]
となっていることを確認し、
[OK]を押す




■FreeBSD/amd64 7.1-RELEASE - sysisntall Main Menu
[Custom]
を選択する



■Choose Custom Installation Optoins

パーティーションの作成
[3 Partition Allocate disk space for FreeBSD]



■message
Worning: A geometry of 76613/16/255....
[OK]



■FDISK Partition Editor


パーティーションが残っていれば[D]でパーティーションを削除する。



キーボードから[C]を押す


[OK]
165
[OK]

[Q]




■Install Boot Manager for drive ad0?
[BootMgr Install the FreeBSD Boot Manager]
を選び[OK]



■Choose Custom Installation Optoins
[4 Label Label allocated disk partitions]
を選び[OK]



■FreeBSD Disklabel Editor


キーボードから[A]を押す
ディスクラベルが自動的に設定される。
[Q]で終了する


■Choose Custom Installation Optoins
[5 Distributions Select distribution(s) to extract]
を選び[OK]


■Choose Distributions
[6 Kern-Developer Full Binaries and doc,Kernel sources only]
を選びキーボードの[SPACE]キーを押す



■User Confirmation Request
[Yes]を選ぶ



■Choose Distributions
[X Exit Exit this menu (returning to previous)]
を選びキーボードの[Enter]キーを押す



■Choose Custom Installation Optoins
[6 Media Choose the installation media type]
を選び[OK]


■Choose Installation Media
[CD/DVD]
を選び[OK]


■Choose Custom Installation Optoins
[7 Commit Perform any pending Partion/Label/Extract actions]
[OK]


■User Confirmation Request
[Yes]





これで、ディスクのパーティーショニング、フォーマット、インストールが始まります。





ここまでくれば基本的なインストールは終了です。
次に管理者アカウントのパスワードを設定します。

■User Confirmation Requested
他に一般的な設定をするのか?
と聞いてきているので、[Yes]を選択します。




■管理者パスワードの設定 Rootアカウントのパスワード設定
FreeBSD Configuration Menu
[Root Password]を選択します。



パスワードを入力します。
New Password:
に続けて入力し[Enter]を押します。



パスワードを再入力します。
Retype New Password:
に続けて入力し[Enter]を押します。



■Time Zone タイムゾーンの設定
何も指定しないと夏時間になると1時間ずれたりします。



[Time Zone]を選択します。




Is this machine's CMOS clock set to UTC? If it is set to local time,or you don't know, please choose NO here!

マザーボード上の時計がUTCをあらわすのか選択します。
通常ローカルタイムである日本時間を設定しておくので、
[No]を選択します。



[5 Asia]を選択します。



[18 Japan]を選択します。



Does the abbreviation `JST' look reasonable?
日本時刻の表記にJSTを使うのか?

[Yes]
を選びます。

■再起動

ここまでの作業で最低限の設定は終了しました。
ここからは再起動してからの操作になります。
この設定画面から終了するには、画面上部に表示されている[Exit]を選択し終了させていきます。
次のような手順で終了させます。



FreeBSD Configuration Menu
[X Exit]を選択します。




[X Exit Install]を選択し[Enter]を押す。



User Confirmation Requested
Are you sure you wish to Exit?

と表示されたら
CD/DVDを取り出します。

[Yes]を押します。



サーバーが再起動を始めます。



FreeBSDの起動画面が表示されたら完成です。

起動後はいよいよFreeBSDの設定を行って行きます。

インストール後の設定へ続く

.