先週、たまに調子が悪かった自宅PostgreSQLサーバーのマザーボードを入れ替えた。あっさり立ち上がったので特に支障はないのかと思っていたが、実際、販売管理プログラムから接続しようとすると、サーバーが見えていないのに気がついた。
ifconfigするとeth0が見えていない。NICが認識できないようだ。
とりあえず、これをやってみた
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/091usenic.html
ドライバーがないようなので、ドライバーを捜してみる。
ネットワークチップはRealtek RTL8105TでLinux用のドライバーをRealtekのホームページからダウンロードした。ダウンロードしたtar.bz2を解凍してreadmeを見ると、必要要件は
<Requirements>
- kernel source tree (supported Linux kernel 2.6.x and 2.4.x)
- For linux kernel 2.4.x, this driver supports linux kernel 2.4.20 and latter.
- compiler/binutils for kernel compilation
となっている。使っているCentOS6.2のKernelは2.6.32-220.el6.i686だ。一応、要件をみたしているように見える。後は、readme通り、
# ./autorun.sh (as root or with sudo)
としてみるのだが、エラーで止まってしまう。
まず、カーネルソースがなかったので、ダウンロードしてきて、
/usr/src/kernels/2.6.32-220.el6.i686
に置いた。今度は「auto.confがない!」と言ってくるので、カーネルソースのディレクトリで
http://masahir0y.blogspot.jp/2012/02/linuxmakefile-2.html
# make oldconfig
# make all
としてみた。一応auto.confはできたのだが、今度は「dev->vlan_r4_registerが意味不明!」、と言ってくる。調べてみるとnet_device構造体が変更になって、コンパイルが通らないようだ。
http://h2plus.biz/hiromitsu/entry/227
(「v2.6.27系からv2.6.30系に移るときに消えたようだ」。このホームページにあるのとは別のメンバーなのだが、「vlan_r4_registerがない!」というのだから変ったのだろう。)
ソースコードを変更してコンパイルするなんて芸当はできそうもないので、この時点でギブアップ。
結局、OSから再インストールすることにした。
CentOS6.2を再インストール後、ifconfigをしてもやはりeth0は見えてこない。もう一度
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/091usenic.html
を実行すると、eth0が見えるようになった。よくわからないのだが、RealtekのLANドライバーそのものはモジュールとして持っているようだ。
これまでOSインストール後、eth0が見えなかったら、Linuxでは使用不可と思い、基盤を買ってきていたが、この操作をすれば特に購入の必要はなかったのかもしれない。
# modprobe epic100
# lsmod ’モジュールが読み込まれているか確認
# ifconfig eth0 up
# ifconfig ’eth0があるか確認
一応、NICは使えるようになった。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<CentOS6.2、PostgreSQL9.1.9インストール時の覚書>
1.CentOS6.2インストール時のパッケージ
minimalから下記を追加。
アプリケーション Emacs (viより使い慣れているので)
サーバー ディレクリサーバー samba
ベースシステム レガシーUNIXの互換性 telnet
開発 開発ツール gccやkernelのソースコードが必要
2.セキュリティー関係で下記を停止してしまう。
selinux
サービスiptables
3.sambaとtelnetの設定
4.PostgreSQL9.1.9のインストール
yumを使うと簡単なのだが、initdb時に「環境変数PGDATAが定義されていない!」と言ってくる。yumでインストールするとPostgreSQLのスーパーユーザーpostgresは自動で作成されるのだが、手動でadduserした場合と異なり、ホームディレクトリが作成されない。通常環境変数はpostgresのホームディレクトリ内の「.bashrc」に記入していたので、ホームディレクトリが無いとどこで設定するのかわからなかった。なので、今回はあきらめて、いつも通りPostgreSQLのソースをダンロード、コンパルしてインストールした。
後からわかったのだが、yumでインストールした場合、自動で追加されるスクリプト/etc/init.d/postgresql-9.1でPATH、PGLIB、PGDATAを定義してやればよかったようだ。
<追記> 2014/2/20
# rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
# yum -y install postgresql91-server
下記をスクリプト/etc/init.d/postgresql-9.1に追加
PATH="$PATH":/usr/pgsql-9.1/bin
環境変数PGDATAはデフォルトで記入されている
PGDATA=/var/lib/pgsql/9.1/data
rootからpostgresのパスワードを設定する。
# service postgresql-9.1 initdb --no-locale
$ createdb Namae -E UTF-8 -l ja_JP.UTF-8 -T template0
ピアツーピアでサーバーと接続する時。telnetでかなり待たされる。nameserverがないのが原因。クライアントのipアドレスを/etc/hostsに登録すること。
ifconfigするとeth0が見えていない。NICが認識できないようだ。
とりあえず、これをやってみた
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/091usenic.html
ドライバーがないようなので、ドライバーを捜してみる。
ネットワークチップはRealtek RTL8105TでLinux用のドライバーをRealtekのホームページからダウンロードした。ダウンロードしたtar.bz2を解凍してreadmeを見ると、必要要件は
<Requirements>
- kernel source tree (supported Linux kernel 2.6.x and 2.4.x)
- For linux kernel 2.4.x, this driver supports linux kernel 2.4.20 and latter.
- compiler/binutils for kernel compilation
となっている。使っているCentOS6.2のKernelは2.6.32-220.el6.i686だ。一応、要件をみたしているように見える。後は、readme通り、
# ./autorun.sh (as root or with sudo)
としてみるのだが、エラーで止まってしまう。
まず、カーネルソースがなかったので、ダウンロードしてきて、
/usr/src/kernels/2.6.32-220.el6.i686
に置いた。今度は「auto.confがない!」と言ってくるので、カーネルソースのディレクトリで
http://masahir0y.blogspot.jp/2012/02/linuxmakefile-2.html
# make oldconfig
# make all
としてみた。一応auto.confはできたのだが、今度は「dev->vlan_r4_registerが意味不明!」、と言ってくる。調べてみるとnet_device構造体が変更になって、コンパイルが通らないようだ。
http://h2plus.biz/hiromitsu/entry/227
(「v2.6.27系からv2.6.30系に移るときに消えたようだ」。このホームページにあるのとは別のメンバーなのだが、「vlan_r4_registerがない!」というのだから変ったのだろう。)
ソースコードを変更してコンパイルするなんて芸当はできそうもないので、この時点でギブアップ。
結局、OSから再インストールすることにした。
CentOS6.2を再インストール後、ifconfigをしてもやはりeth0は見えてこない。もう一度
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/091usenic.html
を実行すると、eth0が見えるようになった。よくわからないのだが、RealtekのLANドライバーそのものはモジュールとして持っているようだ。
これまでOSインストール後、eth0が見えなかったら、Linuxでは使用不可と思い、基盤を買ってきていたが、この操作をすれば特に購入の必要はなかったのかもしれない。
# modprobe epic100
# lsmod ’モジュールが読み込まれているか確認
# ifconfig eth0 up
# ifconfig ’eth0があるか確認
一応、NICは使えるようになった。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
<CentOS6.2、PostgreSQL9.1.9インストール時の覚書>
1.CentOS6.2インストール時のパッケージ
minimalから下記を追加。
アプリケーション Emacs (viより使い慣れているので)
サーバー ディレクリサーバー samba
ベースシステム レガシーUNIXの互換性 telnet
開発 開発ツール gccやkernelのソースコードが必要
2.セキュリティー関係で下記を停止してしまう。
selinux
サービスiptables
3.sambaとtelnetの設定
4.PostgreSQL9.1.9のインストール
yumを使うと簡単なのだが、initdb時に「環境変数PGDATAが定義されていない!」と言ってくる。yumでインストールするとPostgreSQLのスーパーユーザーpostgresは自動で作成されるのだが、手動でadduserした場合と異なり、ホームディレクトリが作成されない。通常環境変数はpostgresのホームディレクトリ内の「.bashrc」に記入していたので、ホームディレクトリが無いとどこで設定するのかわからなかった。なので、今回はあきらめて、いつも通りPostgreSQLのソースをダンロード、コンパルしてインストールした。
後からわかったのだが、yumでインストールした場合、自動で追加されるスクリプト/etc/init.d/postgresql-9.1でPATH、PGLIB、PGDATAを定義してやればよかったようだ。
<追記> 2014/2/20
# rpm -ivh pgdg-centos91-9.1-4.noarch.rpm
# yum -y install postgresql91-server
下記をスクリプト/etc/init.d/postgresql-9.1に追加
PATH="$PATH":/usr/pgsql-9.1/bin
環境変数PGDATAはデフォルトで記入されている
PGDATA=/var/lib/pgsql/9.1/data
rootからpostgresのパスワードを設定する。
# service postgresql-9.1 initdb --no-locale
$ createdb Namae -E UTF-8 -l ja_JP.UTF-8 -T template0
ピアツーピアでサーバーと接続する時。telnetでかなり待たされる。nameserverがないのが原因。クライアントのipアドレスを/etc/hostsに登録すること。