最終更新:2013/12/30
昔のファイルを引き継いでいるため、内容もソースもぐちゃぐちゃです。追々修正します。したいです。
うちの環境が変態なせいか、無線でLANに接続しているLinux端末がしばしばネットワークを見失ってしまう。その際にLANへ復帰するためのメモ。Fedora 16上で確認。
とりあえず復帰の手順。
iw dev {インターフェイス名} link
ifconfig {インターフェイス名} down
iwconfig {インターフェイス名} essid "{SSID名}" keys d:1:{WEP KEY(16進数)}
ifconfig {インターフェイス名} {IPアドレス} netmask {サブネットマスク} \
broadcast {ブロードキャストアドレス} mtu {MTU値}
route add link-local netmask 255.255.0.0 metric 1003 {インターフェイス名}
route add default gw {デフォルトゲートウェイのIPアドレス} wlan0
checknet.sh
#!/bin/sh
var=`iw dev wlan0 link`
if [ "$var" != 'Not connected.' ];
then
echo 'link ok' > /dev/null 2>&1
exit 0
else
echo 'link bad' > /dev/null 2>&1
ifconfig wlan0 down
iwconfig wlan0 essid "xxxxxx" key yyyyyyyyyyyyyyyyyyyyyyyyyy
ifconfig wlan0 192.168.1.50 netmask 255.255.255.0 broadcast 192.168.1.255 mtu 1454
route add link-local netmask 255.255.0.0 metric 1003 wlan0
route add default gw 192.168.1.90 wlan0
exit 255
fi
*/10 * * * * root /usr/local/scripts/checknet.sh > /dev/null 2>&1
・・・いま思ったけど、普通にifdown、ifupで良くね? いや確か、あえてそうしなかったのは何か理由があったはずなんだが、思い出せない。何でだっけな??
ちなみにifconfigはip addrとip linkに置き換わる予定らしいので、気が向いたらそちらでの実装方法も調べてみる予定。あと、iwconfigでなくiwコマンドでアクセスポイントに接続するのが今後の主流になる予定らしいのだが、試した範囲ではうまく動かなかったので今後の課題としておく。
どこでMTUを設定するのか、色々と調べてみても情報が錯綜していていまいちわからないが、とりあえず自宅では”/etc/sysconfig/network-scripts/ifcfg-ethX”に以下の1行を加えることで動いている。インターフェースごとに指定できるので、理屈から考えればこれで正しいのかも。
MTU=XXXX
Samba.org等からソースコードをダウンロードし、展開後にSourceディレクトリに移動。
例:
{SAMBA_SOURCE_DIRECTORY}:tarボールを展開したディレクトリ。
{SAMBA_INSTALL_DIRECTORY}:sambaのインストール先ディレクトリ。
tar xvf samba-3.x.x.tar.gz
cd {SAMBA_SOURCE_DIRECTORY}/source
続いて、autogenを走らせる。
./autogen.sh
特にオプション等の指定が必要なければ、そのままconfigure後、makeを行う。
./configure
make
スーパーユーザにスイッチし、インストールを行う。
su
make install
samba導入後、いくつかの設定が必要。以下に順を追って示す。
Linux上に、sambaでログインを行うユーザを作成する(既存のユーザを利用する場合は、不要)。
useradd -M {新規ユーザ名}
-Mは、ホームディレクトリを作成しないオプション。
sambaに、ユーザを追加する。
{SAMBA_INSTALL_DIRECTORY}/bin/smb/smbpasswd -a {ユーザ名}
続いて、パスワードの設定を求められるので、任意のパスワードを設定する。
sambaの起動スクリプトと設定ファイルを作成する。Fedoraの場合、パッケージに同梱されているRedhat用のファイルを流用可能。
それぞれのファイルは、ユーザ環境に合わせて設定すること。
例:smb.initの場合。
...
# Source networking configuration.
. /etc/sysconfig/network
if [ -f /usr/local/samba ]; then
. /usr/local/samba
fi
...
# Check that smb.conf exists.
[ -f /usr/local/samba/lib/smb.conf ] || exit 0
# Check that we can write to it... so non-root users stop here
[ -w /usr/local/samba/lib/smb.conf ] || exit 0
...
start() {
KIND="SMB"
echo -n $"Starting $KIND services: "
daemon /usr/local/samba/sbin/smbd $SMBDOPTIONS
RETVAL=$?
echo
KIND="NMB"
if [ x"$ISNETBIOSDISABLED" != x"Yes" ]; then
echo -n $"Starting $KIND services: "
daemon /usr/local/samba/sbin/nmbd $NMBDOPTIONS
それぞれのスクリプトが作成できたら、必要なディレクトリにコピーする。
cd {SAMBA_SOURCE_DIRECTORY}/packaging/RHEL/setup
cp smb.init /etc/rc.d/init.d/
cp smb.conf {SAMBA_INSTALL_DIRECTORY}
sambaをサービスに登録する。
chkconfig --add smb.init
sambaサービスを起動する。
service smb.init start
無事に起動できたら、OS起動時に自動実行するように設定する。
chkconfig smb.init on
クライアントからsambaへ接続できること。接続できない場合、ファイアウォールでフィルタリングされている可能性がある。設定を作成するか、ファイアウォールを無効にすること。
service iptables off
2008.10.09記。
ミラクル・リナックスよりsamba-3.0.2a-i18n.tar.gzを入手し、ソースコードにパッチを適用。
ソースコード展開後、patch -p0 < samba-3.0.2a-i18n.patch
source/modules/vfs_hex.cをコピー。
Makefile.inとconfigure.inを編集
Makefile.in
VFS_CAP_OBJ = modules/vfs_cap.o +VFS_HEX_OBJ = modules/vfs_hex.o bin/cap.@SHLIBEXT@: $(VFS_CAP_OBJ:.o=.@PICSUFFIX@) @echo "Building plugin $@" @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_CAP_OBJ:.o=.@PICSUFFIX@) \ + @SONAMEFLAG@`basename $@` + +bin/hex.@SHLIBEXT@: $(VFS_HEX_OBJ:.o=.@PICSUFFIX@) + @echo "Building plugin $@" + @$(SHLD) $(LDSHFLAGS) -o $@ $(VFS_HEX_OBJ:.o=.@PICSUFFIX@) \ @SONAMEFLAG@`basename $@`
configure.in
-default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap charset_CP850 charset_CP437" +default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_hex charset_CP850 charset_CP437" SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS) +SMB_MODULE(vfs_hex, \$(VFS_HEX_OBJ), "bin/hex.$SHLIBEXT", VFS)
./autogen.sh ./configure --prefix=/usr/local/samba3 --with-libiconv=/usr/local/lib LDFLAG=-L/usr/local/lib make su - make install
smb.conf
http://www.php.net/manual/en/install.apache2.php
apache2
./configure --enable-so
PHP
./configure --with-apxs2=%apacheをインストールしたディレクトリ%/bin/apxs --with-regex=TYPE
TYPE: system, apache, php default: php
cp php.ini-dist /usr/local/lib/php.ini
PHP4の場合。
LoadModule php4_module libexec/libphp4.so
PHP5の場合。
LoadModule php5_module libexec/libphp5.so
Addtype application/x-httpd-php .php .phtml
httpd : ALL
./configure make make install
/etc/ntp.confにサーバを追加。
server [タイムサーバのIPアドレスorホスト名]
システム時刻を取得。
ntpdate [タイムサーバのIPアドレスorホスト名] clock -w
/etc/rc.d/init.dに、ntpdの起動スクリプトを作成。
#!/bin/sh # # ntpd This shell script takes care of starting and stopping # ntpd (NTPv4 daemon). # # chkconfig: - 26 74 # description: ntpd is the NTPv4 daemon. # Source function library. . /etc/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -x /usr/local/bin/ntpd -a -f /etc/ntp.conf ] || exit 0 RETVAL=0 prog="ntpd" start() { # Adjust time to make life easy for ntpd if [ -f /etc/ntp/step-tickers ]; then echo -n $"Synchronizing with time server: " /usr/local/bin/ntpdate -s -b -p 8 -u \ `/bin/sed -e 's/#.*//' /etc/ntp/step-tickers` success echo fi # Start daemons. echo -n $"Starting $prog: " daemon /usr/local/bin/ntpd RETVAL=$? echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/ntpd return $RETVAL } stop() { # Stop daemons. echo -n $"Shutting down $prog: " killproc ntpd RETVAL=$? echo [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/ntpd return $RETVAL } # See how we were called. case "$1" in start) start ;; stop) stop ;; status) status ntpd RETVAL=$? ;; restart|reload) stop start RETVAL=$? ;; condrestart) if [ -f /var/lock/subsys/ntpd ]; then stop start RETVAL=$? fi ;; *) echo $"Usage: $0 {start|stop|restart|condrestart|status}" exit 1 esac exit $RETVAL
make make install cp vsftpd.conf /etc
vsftpd.confを編集。
anonymous_enable=NO local_enable=YES local_umask=
./RedHat/vsftpd.pamを/etc/pam.d/にコピー。
iptables -t nat -A PREROUTING -p tcp --dport 15021 -j R EDIRECT --to-ports 21 iptables -t nat -A PREROUTING -p tcp --dport 15020 -j R EDIRECT --to-ports 20 iptables -t nat -A OUTPUT -p tcp --dport 20 -j REDIRECT --to-ports 15020 iptables -t nat -A OUTPUT -p tcp --dport 21 -j REDIRECT --to-ports 15021
# vsftpd config file /etc/vsftpd.conf anonymous_enable=NO local_enable=YES local_umask=011 chroot_local_user=YES #chroot_list_enable=YES #chroot_list_file=/etc/vsftpd.chroot_list userlist_enable=YES userlist_deny=NO #ascii_download_enable=YES #ascii_upload_enable=YES write_enable=YES dirmessage_enable=YES xferlog_enable=YES log_ftp_protocol=YES connect_from_port_20=YES ftpd_banner=Watashiwa uchuu no teiou ZAKARITE da. use_localtime=YES listen=NO
2014/6/18記載
OS/2起動時にALT+F1キーを押し、F2の「オリジナルconfig.sysを使用」を選択したときに使用されるconfig.sysは以下の通り。
x:\os2\boot\config.x
読み取り専用属性がついているため、編集時は事前にattrib -a config.xで属性を外す必要がある。
2013/12/30記載
Netdrive + SMBプラグインの環境にて、Sambaサーバにアクセスできない。
必要なダイナミックリンクライブラリを読み込めていない。
config.sysに”SUPPRESSPOPUPS=x”(※xは任意のドライブレター)を設定し、エラーログ(popuplog.os2)を収拾する。エラーログに、以下のような出力があるかを確認する。
02-11-2008 02:23:21 SYS2070 PID 0056 TID 0002 Slot 00b3 x:\APP\NDFS\SMBCD.EXE SMBCD->LIBLDAP._ldap_err2string 127
LIBLDAP.DLLが正常に読み込まれているかを確認する。以下の事項を確認すること。
Netdriveを使用する場合、プロトコルでTCP/IP over NETBIOSは必要ない。TCP/IPだけあればOK。
GUIを使用してInjoy Firewall 4、またはドライバ($FXWRAP.SYS)のアンインストールを行ったのに、実際にはアンインストールされていない。
不明。うちだけの不具合かも。
Injoy Firewall 4では従来通り、コマンドラインベースのインストーラも用意されているので、そちらを利用してみる(といいつつ、実はまだ試してない・・。最悪、手動でアンインストールできるし)。
ここではApache、Tomcat、MySQLを使用してWebサーバを組む方法について説明します。
以下のものを準備します。
上記はftp://ftp.netlabs.org/pub/gcc/あたりから拾って、該当DLLをLIBPATHの通ったディレクトリ(x:\os2\dll等)に格納しておきます。
上記いずれかがあればOK。Innotek版はhttp://download.innotek.de/javaos2/142_09/install_sdk.exeから入手、またGolden Code版ならばhttp://www.goldencode.com/から購入することができます。
http://tomcat.apache.org/download-55.cgiから、以下のパッケージをダウンロードする。
http://hobbes.nmsu.edu/あたりからtomcat_5-0-27_os2.zipをダウンロードする。
MySQLの公式サイトからダウンロード(5.0で動作確認)。
上記3つのパッケージはhttp://smedley.info/os2ports/から入手できます。
各アーカイブを同一ディレクトリに置き、unzip -dで展開する。展開後、サブディレクトリを含めてディレクトリごとインストールしたいディレクトリにコピーまたは移動する。
<!-- Define an AJP 1.3 Connector on port 8009 -->
Apacheのアーカイブを展開し、conf/httpd.confを編集する(Tomcatとの連携用)。
LoadModule proxy_module modules/proxy.dll LoadModule proxy_ajp_module modules/proxy_aj.dll
<Proxy *> Order Deny, Allow Allow from all </Proxy> <Location /jsp-examples> ProxyPass ajp://localhost:8009/jsp-examples </Location> <Location /servlets-examples> ProxyPass ajp://localhost:8009/servlets-examples </Location>
その他、httpd.conf内のPathやstartup.cmdなどを環境に合わせて設定する。
必要に応じて、PHPの導入作業を行う。ここでは、PHPとApacheの連携方法についてのみ解説します。
LoadModule php5_module modules/modphp5.dll
MySQLのアーカイブを展開する。展開後、中に含まれているzipファイルを展開すると、MySQLを展開したディレクトリ内にdataディレクトリが作成され、初期データベースが作成される。
MySQL 5.0.33のデフォルト動作は、ストレージエンジンにInnoDBを使用している。がしかし、mysqld実行後、mysqladmin -u root shutdownを実行するとmysqldは終了するものの、pidファイルが削除されずにmysqladminが終了しない状態となる。ctrl+cで強制終了すると、次にmysqldを起動したときにInnoDBがリカバリーを始めるがそれに失敗し、mysqldが起動できなくなる。
InnoDBを使用しないか、mysqld --console --logと、ログファイルを作成するようにすると、(何故か)起動できる。
JDBC Driver for MySQL(Connector/J)のアーカイブを展開する。
mysql\bin\mysqld.exeを起動する。
前述の通り、pid関連で問題が発生するため、うちではmysqld --console --logとオプションを指定している。
tomcat\bin\catalina startで起動する。
環境変数JAVA_HOMEに、Javaのホームディレクトリを指定していないと、起動できないので注意。config.sysであらかじめ指定しておけば問題ないが、うちでは複数バージョンのJavaを導入しているので、起動の都度、環境変数の設定をしている。
apache\startup.cmdを起動する。
startup.cmdは、自分の環境に合わせて編集すること。
以上を実行後、Webブラウザでhttp://localhostにアクセスし、Apacheが正常に起動できること。また、http://localhost/jsp-examplesやhttp://localhost/servlets-examplesにアクセスするとTomcatのサンプルページが表示されることを確認する。MySQLとの連携の確認方法は、http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.htmlを参照すること。
CE3-10BTのドライバはポイントイネーブラのため,PCMCIAのソケットサービスは不要。また,IRQのデフォルト値である5はThinkPadのサウンドチップであるESS1688と競合するので,10あたりに変更しておくこと。
インストール中にサーバを見失った場合は,以下の手順で復帰。
また,PROTOCOL.INIでNETBEUIのタイムアウト時間と試行回数を増やすことで回避できる場合もあるようだ。たとえば,以下のとおり。
[netbeui_nif] NETBIOSTIMEOUT = 1000(デフォルトは500) NETBIOSRETRIES = 5 (デフォルトは3)
これまでサーバを見失うとか騒いでいた問題、PCカードを100base-TX対応製品に換えたところあっさり解決。ということで、サーバ/クライアント双方のLANカードは転送速度を統一しておくことが望ましい。
インストール後,PCMCIAサービスを利用する場合はCONFIG.SYSの「DEVICE=IBM2SS01.SYS」の行で明示的にCE3-10BTを利用するソケットを確保しておく。
例)ソケット2を指定する場合。
DEVICE=IBM2SS01.SYS /IG0=2
デバイスドライバにEXTオプションを指定する。
DEVICE=C:\MMOS2\SB16D2.SYS /C:1 /D:1 /H:5 /I:5 /A:220 /B:8 /M:330 /N:SBAUD1$ /Q /EXT
DOS/V セッションのプロパティー設定画面で,[セッション(S)]→[DOS設定(S)...]→[すべてのDOS設定]と開き,[DOS_DEVICE]の設定でCD-ROMドライブのDOS用ドライバを導入する。
C:\OS2\MDOS\ANSI.SYS F:\TEMP\FXGA\DEVICE\ATAPI_CD.SYS /D:CD_ROM
なお,FXGAを起動する際には明示的にCD-ROMドライブを指定できるFXGAplusを使用する。
FXGA.COM /D:CD_ROM
▲先頭へ戻る
ドライバは正常に導入できたが、[コントロールパネル]→[サウンドとオーディオデバイス]→[オーディオ]タブの機器設定プルダウンメニューで、該当の機器が選択できない。デバイスマネージャで該当機器のプロパティを見ると、「ドライバは利用可能ですが、起動されていません。」(もしくは同内容の表示)と表示されている。
Windows XPで使用できる音源数の上限に達しているため。実際に接続している機器が少なくても、過去に着脱した音源のレジストリ情報が残っているため、上記メッセージが表示される場合もある。
レジストリから不要な音源の情報を削除する。具体的には以下の手段で。
デバイスマネージャやネットワークのプロパティ画面に何も表示されず、真っ白の状態になる。
レジストリに不要なキーが大量に存在しているため。
Windows XPのService Pack導入時に、レジストリに不要なキーが大量に追加される場合がある。この影響により、デバイスマネージャやネットワークのプロパティが正常に表示されなくなる。
レジストリエディタを開き、”$%&”で始まる不要なキー項目をすべて削除する。レジストリ編集前に、バックアップを取得しておくこと。
デバイスマネージャのCreative MISCデバイス設定でCreative SB16エミュレーションの使用を無効にしておく。
※複数のサウンドカードを利用する際は、SB16エミュレーション(あるいはそれに類する機能)を無効にしないとバッティングするらしい。
▲先頭へ戻る