メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

今更ながらHP2133にCentOS7をインストール

HP2133の延命措置の為の備忘録。

元々はFreeBSDが入っていたがCentOSに変えた経緯は以下のとおり。
・久々にHP2133の電源を入れたらFreeBSDが起動しなかった。
・修復を試みようとUSBメモリのブートを試みたものの、USBブート失敗。
・再インストールを試みようと前回インストール時に使用したFreeBSDのイメージを書き込んだUSBメモリを使用するも、USBブート失敗。
・他にUbuntuとDebianのUSBブートを試みたがどれも失敗、しかしCentOS7のUSBブートは何故か成功した為、CentOS7をインストールし家庭内FTPサーバとしてそのまま使い続ける事に。

2008年に販売されたネットブック(と当時は呼ばれていた)HP2133、何か使い道は無いかという事でCentOSを入れてみた。
FreeBSDはUSBブートがことごとく失敗、しかも前回インストール時に使用したUSBメモリ(中身は当時のまま)でさえブート出来なかった為、今回は選択肢から外した。

HP2133はHWの仕様上32bit版OSしかインストール出来ない。
公式には32bit版のCentOS7は公開されていないが、有志の方々によって作られた32bit版CentOS7が公開されている為、それを使用。
32bit版CentOSのEPELは2021年2月末の段階では既に削除されている。

タッチパッド横のクリックボタンは茶色に変色していた。
部品取りの為に中古機器を購入し交換しようと考えている。



当方の環境
HP2133 スタンダードモデル
・RAM:2GB (PC2-5300 DDR2-SDRAM)
・HDD:SATA 160GB
・CPU:VIA C7-M ULV 1.2GHz
・モニター:WXGA (1280×768)
・VRAM:128MB
・WLAN:IEEE802.11bとIEEE802.11g (USBのWLANアダプタが必要)
・LAN:10/100/1000Mbps RJ45ポート x1
※CPUは通常時は800MHzで動作するが、高負荷時は1.2GHzで動作する。
※HP2133のスタンダードモデルのRAM容量は1GBだが、自分で2GBに換装した。
※HP2133のスタンダードモデルのHDD容量は120GBだが、元の持ち主が160GBのHDDに換装した模様。



CentOSのインストール

以下よりCentOS-7-i386-Minimal-2009.isoファイルをダウンロード。
http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos-altarch/7.9.2009/isos/i386/

ダウンロードした.isoファイルはRufusを使用しUSBメモリに書き込ませ、CentOS7のインストールUSBメモリを作成。
https://rufus.ie/

上記で作成したCentOS7のブートUSBメモリをHP2133に挿し、電源投入。
HPのロゴがモニタに表示されたらF10キーを叩きBIOSの設定画面を表示させ、USBメモリーから起動するよう設定。
設定完了後再起動し、CentOSのインストールが開始される。
インストールの手順はGoogleで検索すると幾つもヒットする為、ここでは割愛。



インストール後にやったこと

1.コンソール画面の解像度の変更
CentOSのboot時に出力される文字が大きすぎる為、grubの設定を修正。

$ sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX=の行にvga=773を追加。
boot時のログを画面に出力させるよう、rhgb quietを削除。
GRUB_CMDLINE_LINUX=の行は以下のようになった。

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap vga=773"

以下のコマンドを実行し、設定内容をgrub.cfgに反映させる。

$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg


2.wlanのドライバのインストール
以下のリンク先に先人の方々による手順がまとめられてある。ドライバを認識させるまでの手順が長く心が折れそうになったが、10年以上も昔にWindows版のドライバを流用して認識させた事があった事を思い出し、ndiswrapperコマンドでWindows版のドライバを認識させる方法でサクッと進めた。
https://wiki.centos.org/HowTos/Laptops/Wireless/Broadcom?action=show Broadcom Corporation BCM4311, BCM4312, BCM4313, BCM4321, BCM4322, BCM43224, BCM43225, BCM43227 and BCM43228 Based Wireless NICs
http://blog.livedoor.jp/oshibat/archives/1003276802.html Installing CentOS 6.5 on HP 2133 (Broadcom 43xx Wi-Fi)


WLANのアダプタは以下を使用。コネクタ部分を含め、指先より少し大きい程度。紛失注意。
https://www.amazon.co.jp/dp/B00JTSF7DY/


2-1.ndiswrapper-1.63.tar.gzとbcmwl5a.infファイルとbcmwl5.sysを入手。
NdisWrapperのダウンロードサイトからNdisWrapperのtar玉をダウンロード。
自分の場合、ndiswrapper-1.63.tar.gzをダウンロードしCentOSのホームディレクトリに保存。
ドライバのファイルはWindowsのものを流用。ダウンロードしたbcmwl5a.infファイルとbcmwl5.sysファイルはCentOSのホームディレクトリに保存。

https://sourceforge.net/projects/ndiswrapper/files/stable/
http://biginoz.free.fr/linux/bcmwl5a.inf
http://biginoz.free.fr/linux/bcmwl5.sys


2-2.NdisWrapperのtar玉を展開。

$ tar zxf ndiswrapper-1.63.tar.gz


2-3.展開時に生成されたndiswrapper-1.63ディレクトリに移動し、makeコマンドとmake installコマンドを実行。
CentOS7のminimalインストールの場合、開発用のライブラリファイル(libxxxx-dev)がインストールされていない為、別途インストール。
その後にNdisWrapperのインストールを開始する。

$ sudo yum groupinstall "Development Tools"

$ cd ndiswrapper-1.63
$ make
$ su
# make install

make実行時に出力されるエラーの対処について。
自分の環境では、以下のようなログを吐いてmakeが停止。

/home/hechtia/ndiswrapper-1.63/driver/ntoskernel.h:364:20: error: redefinition of 'reinit_completion'
 static inline void reinit_completion(struct completion *x)

上記の場合、ファイル/home/hechtia/ndiswrapper-1.63/driver/ntoskernel.hを開き、364行目あたりの「reinit_completion」のifからendifの間を削除しエラーを回避した。
コメントアウトだけでは同じ場所でエラーを吐き先に進まなかった。

#if LINUX_VERSION_CODE < KERNEL_VERSION(3,13,0)
この間の内容を削除
#endif

2-4.infファイルとNdisWrapperのカーネルモジュールの読み込み。
ndiswrapper -lコマンドを叩き、driver installedと出力されたら成功。

# cd ..
# ndiswrapper -i bcmwl5a.inf
Installing bcmwl5a
# ndiswrapper -l
bcmwl5a : driver installed
# modprobe ndiswrapper

2-5.ここまで来れば、後はnmtuiで以下の設定を済ませるとWLANに接続が出来るようになる。
・wlanインタフェースを作成。
・SSIDとパスワードの設定。
・作成したwlanインタフェースのアクティベート。



3.GNOMEは重過ぎにつき、yum groupinstallでX Window Systemを入れてMWMを導入。
sudo yum groupinstall "GNOME Desktop"でGNOMEを導入したところ、startxを打ってGNOME上のツールが完全に使用可能になるまで3分程度要した。
その後も動作が重かった為にyum groupremove "GNOME Desktop"でGNOMEを削除。
軽量なWindow Managerの導入を試み、yum groupinstall "X Window System"を実行しX Window Systemのみインストール。
mwmのインストール手順は以下を参照。

https://www.riscascape.net/archives/22065 RHEL7/CentOS7に後からX Window Systemを追加するには


以下は/etc/X11/xorg.confの修正箇所。
Section "Device"内のDriverをvesaに修正。
Section "Screen"内のSubSection "Display"のModesを1280x768に修正。

Section "Device"
:
省略
:
	Identifier  "Card0"
	Driver      "vesa"
	BusID       "PCI:1:0:0"
EndSection

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
:
省略
:
	SubSection "Display"
		Viewport   0 0
		Depth     24
		Modes     "1280x768"
	EndSubSection
EndSection


以下はインストールしたツール。
mwmとSeamonkyとconky以外はX環境でなくても使用可能。
・mwm:Motif Window Manager。Motifベースのウィンドウマネージャ。
・vsftpd:家庭用FTPサーバとして運用する為にインストール。
・tmux:ターミナルマルチプレクサ(Terminal Multiplexer)。 1枚のxterm内でを複数のセッション、ウィンドウ、ペインに分割し利用。
・Seamonky:Mozilla系の軽量Webブラウザ。
・Clam AntiVirus:オープンソースのアンチウイルスツール。
・tripwire:改ざん検知ツール。
・conky:X11用のリソースモニタ。


上記のツールの内、yum installでインストール出来た物はvsftpdとtmuxのみ。
conky:RHEL6の.rpmファイルを使用。
Clam AntiVirusとtripwire:公式サイトからtar玉ダウンロードしコンパイルとインストール。
Seamonky:公式サイトからtar玉をダウンロードし、展開後に生成されたseamonkyコマンドを実行しSeamonkyを起動。


4.上記3.の各ツールをインストールし終えたところで準備完了。
この後実施した内容。
・firewalldの設定。vfpの穴開け。
・Clam AntiVirusとtripwireの設定。
・mwmのカスタマイズ。
・CentOSのパーネルパラメータのチューニング。



以下の画像は、HP2133で動作するCentOS 7のスクリーンショット。
Window Managerはmwm。立ち上がっているツールはxeyesとxtermとconky。


インストールした各ツールのリンク先
https://security.appspot.com/vsftpd.html vsftpd
https://github.com/tmux/tmux tmux
https://www.seamonkey-project.org/ Seamonky
https://www.clamav.net/ Clam AntiVirus
https://www.tripwire.com/ tripwire
https://github.com/brndnmtthws/conky Conky
http://ftp.riken.jp/Linux/dag/redhat/el6/en/i386/rpmforge/RPMS/conky-1.6.1-1.el6.rf.i686.rpm



HP2133について
https://jp.ext.hp.com/lib/doc/catalog/notebook/jpt08347_04.pdf HI2133のスペック
https://ascii.jp/elem/000/000/138/138438/ 挑戦的モバイル、HP 2133の実力はいかに?(ASCII.jpの記事)
https://debslink.hatenadiary.jp/entry/20160501/1462113024 十数年ぶりにFreeBSD



viエディタに関する衝撃的な出来事
20年近くもの間、viエディタの設定ファイルは~/.exrcだと認識していたが、CentOS7では~/.vimrcであった。
まだvimはインストールしていないが、/etcディレクトリ内にvimrcは存在していた。
CentOSのインストール直後から.exrcに書いた設定内容が反映されていない事に何となく気付いており、Googleで「CentOS vi 設定」で検索したら以下に記事がヒット。記事の内容によると.vimrcだという。ホームディレクトリに有る設定ファイルのファイル名.exrcを.vimrcに変更したら、設定内容が反映された形でviで編集出来るようになった。

https://www.atmarkit.co.jp/ait/articles/1712/13/news009_2.html Linuxの定番テキストエディタ「vi」をマスターしよう(2)検索/オプション活用編