#author("2024-03-02T10:22:29+00:00","default:patent","patent") #author("2024-03-02T10:22:53+00:00","default:patent","patent") &size(24){&color(navy){''FreeBSD''};}; ---- #contents ---- - [[BSDのプリンセス、マジカルとこちゃん:http://tokochan.haun.org/]] - [[FRESH ports:http://www.freshports.org/]] - [[FreeBSDハンドブック日本語版:http://www.jp.freebsd.org/www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/index.html]]情報がちょっと古いので,最新情報を得るには英語版をどうぞ。 - [[FreeBSD Handbook:http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/index.html]] --- **FreeBSD Update [#k61af712] ***パッチ適用 [#t25026fc] # freebsd-update fetch # freebsd-update install *** バージョンアップ [#d970f66c] ''OSの更新'' # freebsd-update upgrade -r 14.0-RELEASE # freebsd-update install -r 14.0-RELEASE ''PKGの更新'' # pkg-static install -fy pkg # pkg upgrade -y **Portの管理 [#m5f414fe] ''Gitから取得'' git clone --depth 1 https://git.FreeBSD.org/ports.git /usr/ports ''最新に更新'' git -C /usr/ports pull **インストール [#x9b198ed] ''インストールCDの準備'' インストールCDイメージ ftp3.jp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/5.2.1/5.2.1-RELEASE-i386-miniinst.iso をダウンロード。新潟大学からだとこのサイトが早いです。 isoイメージをCD writerで焼きます。 焼きあがったCDから起動します。 ''スライス・パーティションの切り方'' FreeBSDの場合物理的なHDDを,まずスライスという単位にきります。 すべてのディスクを1つのスライスにしてしまってよいでしょう。 次にスライスの中にパーティションを切ります。 いろいろ流儀があるでしょうが / swap容量を差し引いた残り全部 swap 256MB〜1G が簡単です。 ''残りのインストール過程'' -配布モデルはX-Developper -Portsは入れる -Gatewayにはならない -NFS clientになる -NFS serverにならない -Anonymous FTPを提供しない -Linux Emulationをとりあえず無効化 この辺は適当に選択しても後から修正できますので。 ** カーネルオプション [#qea44829] /usr/src/sys/conf/ **パッケージ管理 [#tbc395de] ''最初の一回だけ'' # pkg_add -r cvsup-without-gui # cp /usr/share/example/cvsup/ports-supfile /etc # chmod 644 /etc/ports-supfile /etc/ports-supfileの *default host=CHANGE_THIS.FreeBSD.org と書かれた行を *default host=cvsup.jp.FreeBSD.org と編集して、cvsup.jp.freebsd.orgからとってくるように設定。 # cvsup -L 2 /etc/ports-supfile # cd /usr/ports/sysutil/portupgrade # make install clean ''パーッケージを最新に保つ'' # cvsup -L 2 /etc/ports-supfile # portsdb -uU # portupgrade -ark ''新規パッケージの導入'' # cd /usr/ports # portinstall japanese/kterm ''たまにやって欲しいこと'' お掃除 # portsclean -LCD ** HDDをまるごとコピー [#web39bcb] - [[FreeBSD QandA 1859:http://www.jp.freebsd.org/QandA/HTML/1859.html]] + コピー先の HDD を接続して、オリジナルの HDD から起動します。 + root でログインして /stand/sysinstall を実行します。 + Configure -> Fdisk の画面からコピー先の HDD のスライスを作成します。ブートマネージャもインストールしておきます。 + Configure -> Label の画面から、オリジナルのHDDと同じようにパーティションを作成します。newfs もここで行っておくとよいです。 例: Part Mount Size Newfs ---- ----- ---- ----- da1s1a /mnt 100MB UFS Y da1s1b swap 1024MB SWAP da1s1e /mnt/var 1024MB UFS Y da1s1f /mnt/usr 2048MB UFS Y da1s1g /mnt/home 4550MB UFS Y + /mnt 以下に新たに作成したパーティションをマウントします。 # mount /dev/da1s1a /mnt # mount /dev/da1s1e /mnt/var # mount /dev/da1s1f /mnt/usr # mount /dev/da1s1g /mnt/home + それぞれのパーティションをコピーします。 # dump 0af - / | ( cd /mnt && restore rf -) # dump 0af - /var | ( cd /mnt/var && restore rf -) # dump 0af - /usr | ( cd /mnt/usr && restore rf -) # dump 0af - /home | ( cd /mnt/home && restore rf -) + restoresymtable を削除します。 # rm /mnt/restoresymtable # rm /mnt/var/restoresymtable # rm /mnt/usr/restoresymtable # rm /mnt/home/restoresymtable + コピー先の HDD から起動した際にブートデバイス名が変わるのであれば /mnt/etc/fstab も書きかえておきます。この場合、デバイスファイルも /mnt/dev 上で忘れずに作成しておきます。 + オリジナルの HDD を切り離して、コピー先の HDD から起動することを確認します。 **WSD [#q6f83cbf] **WSDD [#q6f83cbf] - Windowsからブラウジングできるようにする -- WSDD **データCD [#zd48fca3] :sysutils/cdrtools-cjk|日本語ファイルに対応したCD作成ツール +Joliet拡張とRock Ridge拡張なisoイメージを作る % mkisofs -J -r -input-charset euc-jp -o hoge.iso hoge +できたイメージを確認 # mdconfig -af hoge.iso md0 # mount -t cd9660 /dev/md0 /mnt # mdconfig -du md0 +Burn! # burncd -s max data hoge.iso fixate **音楽CD [#i09e511f] :sysutils/cdrdao|CDをdisc at onceで焼く. ***一度だけ必要な手順 [#dc8e0bbc] cdrdaoはscsiデバイス用なので,cam transport moduleをkernelに組み込む。 device atapicam ***CDを作るたびに必要な手順 [#h04e268e] cueシートをtocに変換 % cue2toc hoge.cue > hoge.toc burn!!! # cdrdao write --device 1,0,0 --driver generic-mmc --speed 8 hoge.toc - リッピング cdparanoia ***TOCファイルの作り方 [#mb64c65d] 音楽CDを示すラベルをファイルの先頭に書きます。 CD_DA 後はトラックを書いていきます。 -トラックの種別 TRACK AUDIO -ファイル名 開始位置 長さ FILE "hoge01.wav" 00:00:00 04:55:37 --単一のwavを区切って焼くときは,ファイル名はすべてのトラックで同一にして,開始位置と長さを指定します。 CD_DA TRACK AUDIO FILE "CDImage.wav" 00:00:00 04:11:00 TRACK AUDIO FILE "CDImage.wav" 04:11:00 05:05:62 START 00:02:00 TRACK AUDIO FILE "CDImage.wav" 09:16:62 04:48:63 START 00:01:50 --トラックごとに分かれたwavファイルからCDを作るには,各トラックにおいて対応するファイル名を書きます。 CD_DA TRACK AUDIO FILE "01 - Egao no Yokan ('Deep'Dream mix.).wav" 0 TRACK AUDIO FILE "02 - Wonder Girl ('Deep'Club mix.).wav" 0 TRACK AUDIO FILE "03 - Yureru Koi Otome Iro .wav" 0 -pre gap START 00:01:00 例えばこんな風にすると,前のトラックのラスト1秒になったときに,トラックインデクスが現在のトラックに切り替わります。 ** CDのコピー [#l370dc8b] #cdrdao copy --device 1,0,0 --speed 24 **xfsの起動スクリプト発見 [#zfbf7f56] # echo 'xfs_enable="YES"' >> /etc/rc.conf ** その他のports(MATLABへの道) [#s65fda4d] # portinstall net/tightvnc # portinstall emulator/linux_base-8 # portinstall net/rsync ** Matlabインストール [#veb82031] //+xsetupを動かすのに必要なLinuxバイナリをインストール // # portinstall emulators/linux_base-8/ // # portinstall /usr/ports/x11/linux-XFree86-libs //+インストールCDの中身をまるごとコピー // # mount /cdrom // # cp -R /cdrom /mnt //+LinuxバイナリにLinxu印をつける // # find . -print -type f | grep glnx86 | xargs brandelf -t Linux //+でもこの共有ライブラリはオリジナルのを使用 // # cp /cdrom/update/bin/glnx86/libmwins.so /mnt/cdrom/update/bin/glnx86/libmwins.so //+ARCHが必ずgnlx86になるようにごにょごにょする // # vi /mnt/cdron/install //+ここからはLinux版といっしょ // # mkdir /opt/matlab // # cd /opt/matlab // # /mnt/cdrom/install +xorgが入っているのを前提として,必要なLinuxバイナリをインストール # portinstall emulators/linux_base-8/ # portinstall x11/linux-XFree86-libs # portinstall x11-fonts/linux-fontconfig # portinstall textproc/linux-expat +/etc/rc.confに以下を追加 linux_enable="YES" +/etc/fstabに以下を追加 linprocfs /compat/linux/proc linprocfs rw 0 0 +/compat/linux/etc/fstabを作成 proc /proc proc rw 0 0 +再起動もしくは,自分でmountとか/etc/netstart +CD-ROMからインストール # mount /cdrom # /compat/linux/bin/sh /cdrom/install -t --GUIインストールしたければ,あらかじめ一般ユーザで % setenv XAUTHORITY $HOME/.Xauthority としておくこと +matlabの起動 % ./matlab -glnx86 +licenseサーバも同じく起動できる % ./lmstart -glnx86 -これでとりあえず,R13, R13sp1, R14は起動確認.R14は終了時にエラーが...R14sp1はまだうまくいかない. **システムの再構築 [#deab1149] ''最初の一回だけ'' # pkg_add -r cvsup-without-gui # cp /usr/share/example/cvsup/stable-supfile /etc # chmod 644 /etc/stable-supfile /etc/stable-supfileの *default host=CHANGE_THIS.FreeBSD.org と書かれた行を *default host=cvsup.jp.FreeBSD.org のように、また *default release=cvs tag=RELENG_4 と書かれた行を *default release=cvs tag=RELENG_5_2 と編集する。 # cvsup -L 2 /etc/stable-supfile +ユーザーランドの再構築 # cd /usr/src # make buildworld +カーネルの再構築 # cd /usr/src # make buildkernel +カーネルのインストール # cd /usr/src # make installkernel +ユーザーランドのインストール # cd /usr/src # make installworld +設定ファイルの更新 # mergemaster ** インテル製コンパイラ [#t4b177b4] ライセンス取得 -[[Intel Software Development Products:http://www.intel.com/software/products/compilers/]] **Japanese TeX [#g4ff8140] -japanese/teTeX --tex-texmflocal-1.4 --teTeX-texmf-2.0.2 --teTeX-base-2.0.2_2 --ja-kochi-ttfonts-20030809 --ja-ptex-tetex-3.1.3_1 --ja-texfamily-tetex-1.2 --ja-texfamily-vfn2a-1.3 --ja-xdvik-tetex-22.40y1.1.21_3 --ja-dvipsk-tetex-5.94a **/usr/X11R6/lib/X11/fs/config [#g194989f] clone-self = on use-syslog = off catalogue = /usr/X11R6/lib/X11/fonts/TTF/ error-file = /var/log/xfs.log default-point-size = 120 default-resolutions = 75,75,100,100 **PukiWiki運営のために必要なパッケージ [#p7bb6589] -php4-4.3.8_2 PHP Scripting Language (Apache Module and CLI) --perl-5.8.5 --libiconv-1.9.2_1 --expat-1.95.8 --apache-2.0.50_2 -php4-mbstring-4.3.8_2 The mbstring shared extension for php -php4-pcre-4.3.8_2 The pcre shared extension for php ** USB Keyboardを使えるようにする [#m275259f] # kbdcontrol -k /dev/kbd1 < /dev/ttyv0 -l jp.106> /dev/null ** Xでアンダーバーが効かない [#f03c0043] -xorgな環境 -xevで拾ってみるとkeycode228はなにも対応されていない .Xmodmapに keycode 228 = backslash underscore .xinitrcの適当な所に xmodmap $HOME/.Xmodmap ** 決まった時間にチャイムを鳴らす [#q65acdc8] - portsからbeepをインストール # portinstall audio/beep - 次のようなスクリプトを /root/bin/chaimes に作成 -- A4 #!/bin/sh /usr/local/bin/beep -p 440 $1 -- B4 #!/bin/sh /usr/local/bin/beep -p 493.8 $1 -- C4 #!/bin/sh /usr/local/bin/beep -p 261.6 $1 -- D4 #!/bin/sh /usr/local/bin/beep -p 293.6 $1 -- E4 #!/bin/sh /usr/local/bin/beep -p 329.6 $1 -- F4 #!/bin/sh /usr/local/bin/beep -p 349.2 $1 -- G4 #!/bin/sh /usr/local/bin/beep -p 392 $1 - A4〜G4を組み合わせてチャイムを鳴らす.スクリプトは /root/bin/chimes に保存 -- play1 #!/bin/sh ./F4 100 ./A4 100 ./G4 100 ./C4 200 sleep 1 ./F4 100 ./G4 100 ./A4 100 ./F4 200 sleep 1 ./A4 100 ./F4 100 ./G4 100 ./C4 200 sleep 1 ./C4 100 ./G4 100 ./A4 100 ./F4 200 -- play2 #!/bin/sh ./F4 50 ./C4 100 ./A4 50 ./F4 200 sleep 1 ./F4 50 ./C4 100 ./A4 50 ./G4 200 sleep 1 ./G4 50 ./C4 100 ./A4 50 ./G4 200 sleep 1 ./G4 50 ./C4 100 ./A4 50 ./F4 200 - /etc/crontab に以下のような内容を追加 30 8 * * * root (cd /root/bin/chimes && ./play1) -- 並び順は"minute hour mday month wday who command" - Cronを再起動 # kill -HUP `cat /var/run/cron.pid` ** Vinum [#v29ea79d] Vinumは仮想ディスクを作り出す。 はじめにVolumeというオブジェクトがある。 Volumeは容量制限のない何らかのディスク領域。 Volumeの中にPlexがある。 Plex1つでVolumeのすべての可能なアドレスをカバーしている。 2つ以上のPlexがある場合,ひとつひとつがVolume全体のアドレス空間を張る。 Plexはつまり冗長である。 BSDパーティションをPlexの構成単位にしてもいいが, パーティションの数には限りがある。 だからVinumはひとつのBSDパーテシション(drive)を 複数のディスク(subdisks)に分けることができる。 SubdisksはVinum drive = BSDパーテション上にいくつでも作ることができる。 Plexは任意の数の,任意のVinum Driveに散らばっているSubdisksを含むことができる。 つまり,plexは,そしてvlumeはdriveの物理的な容量に制約されないのだ。 まずこんなファイルを作る # cat backuphome drive ad2s1c device /dev/ad2s1c drive ad3s1c device /dev/ad3s1c volume backuphome plex org concat sd length 77879478k drive ad2s1c sd length 77879478k drive ad3s1c 意味を説明しよう。 drive ad2s1c device /dev/ad2s1c この行によってデヴァイス /dev/ad2s1cをad2s1cという名前のVinum driveにする。 次の行も同様。 volume backuphome この行でbackuphomeという名前のボリュームを作る。 以下backuphomeボリュームの内容を書く。 plex org concat 上で説明したように,volumeはplexからなる。 ここでは単一のplexを用いているから冗長度はない。 org concat というのは,単純連結の意味。 sd length 77879478k drive ad2s1c 上で書いたように,plexはsubdiskからなる。 ここではdrive ad2s1cに長さ77879478kBのsubdiskをつくって, それをplexに追加している。 次の行も同様。 なお,このときの長さは,一度/dev/ad2s1cをnewfsしてmountしてdfで調べた:P さて,このコンフィグレーションファイルを使ってボリュームを作る。 # vinum > create -f backuphome > quit 以上。 これで/dev/vinum/backuphomeというでかい領域ができた。 後は通常のディスクのようにnewfsする。 # newfs /dev/vinum/backuphome で,fstabにでも書いてケロ。 注意。vinumドライバが起動時に実行されるように, echo 'start_vinum="YES"' >> /etc/rc.conf しておくこと。 ** Marvell Yukon 88E8053を使う [#p3952139] --- if_sk.c.orig Thu Jan 6 17:54:47 2005 +++ if_sk.c Fri Jan 28 12:12:55 2005 @@ -157,6 +157,11 @@ }, { VENDORID_MARVELL, + DEVICEID_MARVELL_88E8053, + "Marvell Yukon 88E8053 Gigabit Ethernet" + }, + { + VENDORID_MARVELL, DEVICEID_BELKIN_5005, "Belkin F5D5005 Gigabit Ethernet" }, --- if_skreg.h.orig Thu Jan 6 17:54:47 2005 +++ if_skreg.h Fri Jan 28 12:12:45 2005 @@ -65,6 +65,12 @@ #define VENDORID_MARVELL 0x11AB /* + * Marvell Yukon 88E8053 PCI Express Gigabit Ethernet Controller + */ + +#define DEVICEID_MARVELL_88E8053 0x4362 + +/* * SK-NET gigabit ethernet device IDs */ #define DEVICEID_SK_V1 0x4300 - ネタ元 -- http://docs.freebsd.org/cgi/getmsg.cgi?fetch=277939+0+archive/2005/freebsd-net/20050130.freebsd-net ** Windowsの共有フォルダをマウント [#o392c6b9] mount_smbfs -E euc-jp-MS:cp932 -I hoge //tacoma@hoge/data /mnt ** MatrixRaid [#u6c3d112] - http://www.on-sky.net/hs/index.cgi?date=200711 ** Soft Update Journalingを有効にする [#h23a34e4] tunefs -j enable /dev/ada0s1d - http://d.hatena.ne.jp/pebblescabin/20111009/1318107969 ** パッケージ依存関係再構築 [#j587363b] pkgdb -L - http://d.hatena.ne.jp/akira_you/20110907/p1 ** GtkクリップボードとXクリップボードの同期 [#p6e89b4c] autocutsel ** Rsync [#e4f90efc] -ファイル名の文字コードが、 remote - EUC-JP local - UTF-8 だとする。この場合、 rsync -aruvz --iconv=utf-8,euc-jp xxx.xxx.xxx.xxx:/home /backup/home とする。(local,remote の順番なことに注意) -http://clicklog.org/article/128714978.html -http://blogs.oracle.com/thaniwa/entry/ja_rsync_file_move ** ファイルだけディレクトリだけパーミッション変更 [#v9769191] find ./backup -type d -print0 | xargs -0 chmod 750 find ./backup -type f -print0 | xargs -0 chmod 640 **minidlna [#w5f3cbb0] -文字化け対策 /usr/local/share/locale/ja/LC_MESSAGES **certbotでLet's Encrypt [#r85f900c] -https://nofu.jp/wiki/freebsd/apache/freebsd_13_apache24_certbot -https://intaa.net/archives/52482 ** その他 [#ab18c63a] -chown -h hoge:hoge pon でシンボリックリンクの所有者変更 -cp -d hoge でシンボリックリンクをシンボリックリンクのままコピー - vmstat -i でirqとか表示 - カーネル構築のマニュアル -- /usr/src/sys/conf/ - FD_SETSIZE -- /sys/sys/select.h -lsのタイムスタンプフォーマット --ls -l --time-style=full-iso