FreeBSDのメモ

FreeBSD 4.3インストール時からのメモ。
自分用のメモのつもりでしか書いてないので意味不明な部分も多いですが、何かの役に立つところがあるのではないかと。


■インストール後にインストーラーを実行する
# /stand/sysinstall

■MBRの修復
boot0cfg
■shell
・shellの変更
$ chsh -s /usr/local/bin/bash

で変更できる。
ただし、/etc/shells に定義してないと使えない。
・csh
実際には tcsh ?
プロンプトにuser名を set prompt='[%B%m%b] %B%~%b%# '
・backspace と delete の調整
# for BS and DEL key
stty erase '^H'
stty erase2 '^?'
って書いてます。
X上でktermからmoreを使った時にコマンド入力時にbackspace が^Hってエコーバックされて。
端末ドライバには、cannonicalモード(cookedモード)と呼ばれる、一行(行末文字まで)をアプリに渡すモードと、rawモードと呼ばれるアプリ側で入力を扱うモードがある。
cannonicalモードを使ってる時は一般的にはbackspaceは^Hってエコーバックされるので、これを調整してあげないといけないということらしい。
ちなみに^Hはbackspace文字1文字(ASCII 0x08)のことで、viならCtrl-Vに続いてCtrl-H、emacsならCtrl-Qに続いてCtrl-Hで入力する。delete文字は^?(ASCII 0x7f)。ちゃんと一文字で入力してあげないといけない。

■telnetからrootでlogin
セキュリティに問題があるので、標準ではできないようになってる。
ssh を使った方が良いと言うことだが。
/etc/ttys でコンソール行にsecure と書いてあるコンソールからはtelnetで入れる。

■起動時のlogを見る
dmesg

■.gz/.bz2 の展開
$ tar xzvf filename
x:extract, z:unzip, v:verbose, f:from file

.gz のextract は gunzip
.bz2 のextract は bunzip2
■ports
一般的にはこういうステップを個別にできるようになっているはず。
$ make fetch →ソースをFTPでGET
$ make patch →portsの持っているpatchを適用
$ make
# make install
# make package
$ make clean

既にインストールされている場合、上書きを嫌がるみたいなので、そういうときは
# make -D FORCE_PKG_REGISTER install

インストールされたpkg, Portsの管理は /var/db/pkg でされてます。

■ボリュームのマウント
(cdrom)
mount /cdrom
FreeBSDは標準的に/cdromにマウントする習慣みたい。fstabに書いてるのでオプションは暗示的。
(DOSボリューム)
mount -t msdos /dev/ad0s1 /mnt
マウントポイント # mkdir /mnt で作っておこう。
-t オプションは ntfs とか ext2 とか。これを見て /sbin/mount_xxxx を実行する仕組みらしい。
だから、/sbin/mount_msdos って叩いても良い。
■フロッピーを使う (FreeBSD)
# fdformat /dev/fd0.1440
# disklabel -w -r /dev/rfd0.1440 fd1440
# newfs -c 80 -t 2 -u 18 -m 0 -o space -i 8192 /dev/rfd0.1440
# mount /dev/fd0.1440 /mnt

(RedHat)
# fdformat /dev/fd0u1440
# /sbin/mke2fs /dev/fd0u1440
# mount -t ext2 /dev/fd0 /mnt/floppy

ちなみに FreeBSD の標準状態では ext2 のファイルシステムはマウントできず、カーネルの再構築が必要。でも、LINT のなかに、ext2 を使うのは危険と書いてあるので気持ち悪い。

■APMを有効にする
・/boot/kernel.conf に enable apm を記述。
・/etc/rc.conf に apm_enable="YES" を記述。(/etc/defaults/rc.confのスケルトン参照)

■CD-R/RWを焼く FreeBSD4.5R & Panasonic CW-7586
CW-7586は burncd でサポートされていない。
cdrecord (cdrtoolsに含まれる) を使う。cdrecord-1.11a13
http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
これはSCSI用のburnerなので、ATAPIデバイスをSCSIデバイスとして認識させるために、atapicam http://www.cuivre.fr.eu.org/~thomas/atapicam/ でカーネルソースにパッチして、カーネルを再構築する。結局ATAPIっていうのはATAにSCSIコマンドを流すような仕組みということらしい。

# patch < パッチファイル
というのでパッチされるはずだが、元ファイルを聞かれてしまうので、/usr/src/sys/....のソースを明示してやらないといけない。

で、cdrecord を使うためにカーネルパラメータをいじってあげないといけない。posix priority scheduling

# cdrecord -scanbus
で scsibus, id, inn を確認する。

CDに焼くためにiso9660のイメージを作る必要がある。


・iso9660 イメージ の作成
mkisofs オプション 入力ファイル名

オプションは
-A xxx :アプリID(ヘッダ)
-R :ロックリッジ形式
-J :Joliet拡張
-b xxx :El Torito ブータブルCD 。ブートイメージを指定。
-c xxx :ブートカタログ名の指定
-o xxx :出力するイメージファイル名。デフォルトは標準出力。

入力ファイル名はファイルで与えられて、
-path-list パスファイル名
作ったイメージにディレクトリ構造を作るなら
-graft-points を指定して、
入力ファイル名を distfiles/=/usr/ports/distfiles こんな感じで。

こんな感じ
mkisofs -A Backup -R -D -graft-points -o /usr/tmp/backup.image \
-path-list ./backuplist

パスリストはこんな感じ
boot/=/boot/kernel.conf
fonts/=/usr/X11R6/lib/X11/fonts/TrueType
CIDfont/=/usr/X11R6/lib/X11/fonts/CID

・作ったiso9660イメージをマウントしてみる。
# vnconfig -c vn0 /usr/tmp/backup.image
で仮想デバイスファイルにして(vn0はデバイススペシャルファイル)
# mount_cd9660 /dev/vn0c /cdrom
でマウント。
# umount /cdrom
でアンマウント。
# vnconfig -u vn0
で解放。


・実際に焼くのは
# cdrecord speed=4 dev=0,0 blank=all
で初期化して。
# cdrecord -v speed=4 dev=0,0 イメージファイル名
で焼く。-fix ってオプションがあるけど、つけなくてもfixateされるみたい。


■カーネルの再構築
FreeBSDハンドブックに書いてあるがわかりにくい記述。
/usr/src/sys/i386/conf/MYKERNEL  にGENERICコンフィグレーションファイルをコピーして作ります。
makeするためのコマンドは、
# /usr/sbin/config MYKERNEL
# cd ../../compile/MYKERNEL
# make depend
# make
# make install
古いカーネルは /boot/kernel.old にコピーされる仕組み。ブートしない時はブートローダーで
boot kernel.old
と叩くと古いカーネルから立ち上がる。

■HP DeskJet990cxi での印刷
USB接続しているが、デフォルトのままで /dev/ulpt0 で認識されている。
・lpd
/etc/printcap を作る

deskjet|lp|hp DeskJet 990CXi:\
:sh:sd=/var/spool/lpd/deskjet:\
:lp=/dev/ulpt0:\
:if=/usr/local/libexec/hpif:\
:lf=/var/log/deskjet.log:

フィルタ/usr/local/libexec/hpifを作る。この辺はFreeBSD Hand Book に書いてあるとおりでテキスト印刷までは問題なくできる。

lpd をboot時に起動するように、/etc/rc.conf で。
lpd 自体は # lpd で起動できるけど。
キューを見るのは # lpq

ghorstscript を使う時のフィルタは結局こんな感じ。これでテキストとPSファイルと振り分けて印刷できる。
# Treat LF as CR+LF:
#
printf "\033&k2G" || exit 2
#
# Read first two characters of the file
#
read first_line
first_two_chars=`expr "$first_line" : '\(..\)'` #
# Note that PostScript files are actually interpreted programs,
# and those programs are allowed to write to stdout, which will
# mess up the printed output. So, we redirect stdout to stderr
# and then make descriptor 3 go to stdout, and have Ghostscript
# write its output there. Exercise for the clever reader:
# capture the stderr output from Ghostscript and mail it back to
# the user originating the print job.
#
exec 3>&1 1>&2
/usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=ijs \
-sIjsServer=hpijs -dIjsUseOutputFD \
-sDeviceManufacturer="HEWLETT-PACKARD" \
-sDeviceModel="DESKJET 990" \
-sPAPERSIZE=a4 -r600x600 -dDuplex=false -dTumble=false \
-sOutputFile=/dev/fd/3 - && exit 0

else
#
# Plain text or HP/PCL, so just print it directly; print a form
# at the end to eject the last page.
#
echo $first_line && cat && printf "\033&l0H" && exit 0


if [ "$first_two_chars" = "%!" ]; then
#
# It is PostScript; use Ghostscript to scan-convert and print it.fi
fi

exit 2
・ghostscriptを使って印刷するために
HPのプリンタの場合、hpijsが必要。(hpijs-1.0.3)http://hpinkjet.sourceforge.net/

# tar xzvf hpijs-1.0.4.tar.gz
# cd hpijs-1.0.4
# ./configure
# make
# make install

ghostscript 6.53 以降 ijs インターフェースが標準で含まれる様になっているので、こっちも書いてあるとおりに make すれば基本的にO.K.。
# gs -h
で Available devices:に ijs が含まれていれば動く。HPのページには hpijs が含まれないと駄目なように書いてあるが、そんなことなかった。


■USB機器を見る
# usbdevs -v

USBの設定ファイルは /etc/usbd.conf
■XFree86 4.1
・XF86Config
4からは
# XFree86 -configure
で設定ファイルが作れるようになってる。(そのままでは動かなかった)
# XFree86 -xf86config /root/XF86Config.new
でテスト。
Configfileのスケルトンが/usr/X11R6/lib/X11/XF86Config.eg
にあるのでこっちを見て作った方がわかりやすいかも。

・フォントパスの設定
/usr/X11R6/lib/X11/fonts/Type1 とかというところ。
各ディレクトリにfonts.dirが必要。
mkfontdir で作れる。(スケーラブルフォントはfonts.scaleを作ってやらないとだめ。と言うかmkfontdirはスケーラブルフォントに対応してないので、fonts.scaleの内容をそのままコピーするだけと言うこと。)
・フォントパスの変更を動的に
# Xset +fp /フォントパス
# Xset fp rehash

・TrueTypeフォントのセットアップ
# mkdir /usr/X11R6/lib/X11/fonts/TrueType
でフォントディレクトリを作ってその中にフォントファイル .ttf , .ttc を入れて。
XF86Configの設定
Section "Files"
FontPath ""
Section "Module"
Load "type1"
# Load "freetype"
Load "xtt"

/usr/X11R6/lib/X11/fonts/TrueType/fonts.dir を作って。
(ttmkfdirで作れるらしい)
    # ttmfdir > fonts.scale
    # mkfontdir

・xfontsel
フォント名を得るためのヘルパー。

・X の終了
ctrl-alt-Backspace

・kinput2でEggKeyBindingを使う
kinput2 --ccdef ccdef.kinput2.egg

・xwininfo
window の info を見る。

・ X 起動時のシェル・スクリプトの流れ
    startxの場合
        .xinitrc があれば、それを実行。
            無ければ、/usr/lib/X11/xinit/xinitrc を実行
        .xserverrc があれば、それを実行。
            無ければ、/usr/lib/X11/xinit/xserverrc を実行
        (.xsessionを実行)
        (ここから.xinitrcの内容)
        /etc/X11/xinit/.Xresource があれば xrdb にマージ.
        ~/.Xresources があれば xrdb にマージ.
        /etc/X11/xinit/.Xmodmap があれば xmodmap を実行.
        ~/.Xmodmapがあれば xmodmap を実行.
        
        kinput2とか必要なプログラムの起動.
        WindowManagerを起動.
        
   

・.Xresourcesと.Xdefaults
$HOME/.xinitrc または $HOME/.xsession 内などで、
xrdb -merge $HOME/.Xresources ==> .Xresources を読み込む
xrdb -merge $HOME/.Xdefaults ==> .Xdefaults を読み込む
起動スクリプトの中に指定無し ==> .Xdefaults を読み込む
とどっかのページに書いてあったがこの二つのファイルの違いはよくわからない.とりあえず,標準的なインストールではxinitrcで.Xresourcesを読み込むようになっているのでそれに従って環境を作ると.Xdefaultsを読み込まないみたい.

・editres
リソースのエディット ~/.Xresource

・xfd     キャラクタマップの表示
    xfd -fn フォント

・xrdb    Xサーバーリソースデータベースユーティリティ

・termcap
    /usr/share/misc/termcap
    /usr/X11R6/lib/X11/etc/xterm.termcap


■wnn jserver
nn → 'ん' って入力したい。だってそういう習慣だから。でもwnnのデフォルトは n → 'ん' になってる。
/usr/local/lib/wnn/ja_JP/rk/2B-ROMKANA
の中を変更したら変わりそうな雰囲気なんだが、ダメだった。



■Gnome
~/.gtkrcで設定するみたいだが、コメントに直接編集するなって書いてあるので迷うところ。
/usr/X11R6/share/themes/Default/gtk/gtkrc とか gtkrc.ja とかを真似して書けば良さそう。

・gtk--ベースのアプリのコンパイル
eg++ 'gtkmm-config --cflags' foo.cc 'gtkmm-config --libs'
・gtk--のautoconf
gtk--.m4を/usr/local/share/aclocal へコピー

■フォントセット
jisx0221 unicode iso10646-1
jisx0208 第一/第二水準
jisx0212 補助漢字
jisx0213 第三/第四水準
jisx0201 ローマ字/半角カタカナ
jisx0211 制御文字


■Ghostscript6.53 の make
./configure でmakefile生成。
デフォルトのインストールパスは/usr/shareなのでFreeBSDの場合は/user/local/shareに書き換えた方が馴染みそう。Makefileの中で設定。
A4を有効にするのは コンパイルオプション -DA4 が必要みたい。make A4=yes ってmakeしないといけないかな。


■Ghostscript6.53 で CIDフォント/TrueTypeフォントを使えるように
まず、CIDフォントの前に、フォントインストール用のパスを変更。Ghostscriptの標準では /Resource と言うパスにフォントフォルダを作らないといけないので。

/usr/local/share/ghostscript/6.53/lib/gs_res.ps の 250 行目付近/FontResourceDir (/usr/local/share/ghostscript/Resource/Font/) readonly .forcedef % pssys'params is r-o

/GenericResourceDir (/usr/local/share/ghostscript/Resource/) readonly .forcedef % pssys'params is r-o

これで、/usr/local/share/ghostscript/Resource/ の下がフォントパスになる。

必要なパスを切って。
# cd /usr/local/share/ghostscript/Resource
# mkdir CIDFont
# mkdir CMap
# mkdir Font

フォントは 東風明朝CID化キット http://kappa.allnet.ne.jp/Kochi-CID/ のフォントを使った。

Kochi-Mincho, Kochi-Gothic を CIDFont に入れる(シンボリックリンクでO.K.)。

CMap ファイルが必要になるので、

ftp://ftp.oreilly.com/pub/examples/nutshell/ujip/adobe/

から入手。日本語に使うのは aj14, aj20 で、これを Resource/CMap/ の下に展開。

これだけで、フォントファイルの実体がある Kochi-Mincho, Kochi-Gothic は使えるようになるみたい(なんか変)。
で、普通に使えるように、Resource/Font/ の下に、 Kochi-Mincho--H の様な名前で

/Kochi-Mincho--H
/H /CMap findresource
[/Kochi-Mincho /CIDFont findresource]
composefont pop

の様な内容のファイルを作る。
これで、Kochi-Mincho--H というフォント名で使えるようになる。

エイリアスを作るのは、Resource/CIDFont/Ryumin-Light というファイル名で

%!PS-Adobe-3.0 Resource-CIDFont
%%BeginResource: CIDFont (Ryumin-Light)
/Ryumin-Light
/Kochi-Mincho /CIDFont findresource
dup length dict begin {def} forall currentdict end
/CIDFont defineresource pop
%%EndResource
%%EOF

の様な内容のファイルを作った後に、Resource/Font/Ryumin-Light--H を

/Ryumin-Light--H
/H /CMap findresource
[/Ryumin-Light /CIDFont findresource]
composefont pop

の様に。

ちなみに、この Ryumin-Light--H って (フォント名)--( CMap名) のはずだが、実際にはあやふやなようで、 例えば、 mozilla-0.9.3 から印刷する時は Ryumin-Light-EUC-H というフォントを使おうとします。 EUC-H は CMap名なので、ハイフン1つで区切ってます。釈然としません。
この時も、Resource/Font/Ryumin-Light-EUC-H に

/Ryumin-Light-EUC-H
/EUC-H /CMap findresource
[/Ryumin-Light /CIDFont findresource]
composefont pop

の様に作ってあげれば、動く。

TrueTypeフォントを使いたければ、Resource/CIDFont/Microsoft-Gothic のファイル名でCIDフォントの代わりに

/Microsoft-Gothic
(/usr/X11R6/lib/X11/fonts/TrueType/msgothic.ttc) .openttcidfont
dup length dict begin {def} forall currentdict end
/CIDFont defineresource pop

の様な内容のファイルを作って、フォントファイルを指してやれば、使えるようになった。が、ライセンスの問題があるのでマイクロソフトのフォントは使ってません。


参考のページ
http://www.matsusaka-u.ac.jp/mirror/akr/nonresearch/free-software/ghostscript/cid.ja.html
http://www.aihara.co.jp/~taiji/tops/index-j.html

・gs-cjk 関連の活動は大変価値あるものだと思う。



■freetype2


■CVSup

# cvsup supfile

supfile のサンプル /usr/share/examples/cvsup
base ディレクトリ /usr/local/etc/cvsup
拒否ファイルのデフォルト /usr/local/etc/cvsup/sup/refuse


■sj3 & Kinput2

sj3は ports から入れるだけでサーバーsj3serverが立ち上がるようになるのでそれだけで,ターミナルからsj3ってたたけばsj3から立ち上がったシェルで日本語入力ができるようになる.

kinput2を使うために,sj3に対応したバイナリを入れる.

kinput2のmanに書いてあるが、環境変数 XMODIFIERS"@im=kinput2" と設定が必要(~/.cshrc or ~/.xinitrc)。

リソースファイル(.Xresources)に "*inputMethod: kinput2" と書いておく必要がある。

Kinput2 のリソースファイルである /usr/X11R6/lib/X11/app-defaults/Kinput2 にデフォルト設定がある 。

kinput2 は、他のものより先に起動するのが良いので、~/.xinitrc からkinput2 -sj3 & などのようにして起動しておく。

ここまでで使えるかと思ったがダメなのでsj3の設定ファイルを用意.
~/.sjrc.kinput2, ~/.sjrk ~/.sjhk を
http://www.tk2.nmt.ne.jp/~artrec/ar-culture.html
からもらってくる.(kinput2用の.sjrcが必要らしい)
環境変数 SJRC に ".sjrc.kinput2" をセットするようにして使用可能に.
これで シフト+スペースで漢字変換モードに入れるようになる.

sj3は ports から入れるだけでサーバーsj3serverが立ち上がるようになるのでそこまで
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
1309495 256 -rwsr-xr-x 1 bin bin 115328 3/30 22:49 /usr/local/bin/sj3
1309493 192 -rwsr-xr-x 1 bin bin 97984 3/30 22:49 /usr/local/bin/sj3serv

This port has installed the following startup scripts which may cause
network services to be started at boot time.
/usr/local/etc/rc.d/sj3.sh

If there are vulnerabilities in these programs there may be a security
risk to the system. FreeBSD makes no guarantee about the security of
ports included in the Ports Collection. Please type 'make deinstall'
to deinstall the port if this is a concern.



■Mew2
http://www.running-dog.net/bsd/43/emacs.html

~/.mew に設定を。

■make

・make.conf の場所
スケルトン    /usr/src/etc/defaults/make.conf
/etc/defaults/make.conf → /etc/make.conf の順に、sys.mk から include

・make.conf の内容
MASTER_SITE_OVERRIDE= \
ftp://ftp.t.ring.gr.jp/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
あと、特定のportにだけ適用したいものがある場合は、
そのportのディレクトリに Makefile.local を置く方法も。
これは Mk/bsd.port.mk の 625-646 で記述されています。
・チュートリアル
/usr/share/doc/psd/12.make/


■grub (0.91)
grub からbootする方法に関して、ドキュメントには FreeBSD の場合、
grub のコマンドラインから
> kernel (hd1,2a)/boot/loader
> boot
(2番目のHDの3番目のパーティション(スライス)に / がある時)
で boot できるような記述があるが、これでは boot しなかった。
loader は動くのだが、loader が自分の動かしたい カーネルを判断できないみたい(と言うか、loader が動いた時のカレントパスがおかしいみたい)。

loader が動いて kernel が見つけられないと言うメッセージが出たので、
set culldev=disk2s3a:
load /kernel
boot
と言うコマンドを打てば boot する。
多分、loader.conf か何かに自分自身の場所がどこかを書けば良いのだろうけど。
loader でのデバイスの指定は lsdev で表示される名前でo.k.

■wine
portからインストール。
ソース/documentation/sampleからconfigを.wine/configへコピー。
Cドライブをマウントしてあげたパスをconfigの中でCドライブとして書いてあげると一応ソリティアは動く。


■afterstep

configuration file の存在するパスは
local :  ~/GNUstep/Library/AfterStep
grobal:  /usr/X11R6/share/afterstep
(パッケージからインストールするとここみたい、ソースからmakeすると/usr/local/share/afterstep になるらしい。)

start/ ディレクトリ:メニューの設定
feels/feel.ClickToFocus マウスポインタでのウィンドウフォーカスをしない設定。

■Ethereal
パケットキャプチャ/モニタのためのソフト。portsからmake。
makeの時に設定を若干聞かれるがEnterで逃れるだけで使えそう。
キャプチャの出力ファイル、フィルタファイルは入力なしで、promiscuousモード:アンチェック、update in real time:チェックでとりあえず使えます。


■スプラッシュスクリーン
/boot/loader.conf に
splash_bmp_load="YES"
bitmap_load="YES"
bitmap_name="/boot/deamon_freebsd-2.bmp"
こんな感じ。

1024x768で表示するにはVESAサポートを有効にしないといけない。
カーネルに,VGAドライバ/VESAオプションが必要.さらにそのためにVM86オプションが有効になってないといけないはず.



■cdrdao (CD-R Disk At Once)
CDを一枚まるごとコピーするアプリケーション。
cdrdao <command> [options] [toc-file]
# cdrdao copy --driver generic-mmc --device 0,0,0
ドライバはhttp://cdrdao.sourceforge.net/drive.html で確認できる。

■FreeBSD4.4→4.7へのUpgrade
CDからバイナリアップグレード

・/usr配下を更新する時に既にinstallされてるとか、古いバージョンが入っているエラーでとまる。
追加と上書きって言うのの区別があるみたいで、追加できないって怒ってるみたい。
ALT+F2でエラーログ参照。ALT+F4でコマンドラインからpkg_deleteでエラーになるportsを消しながらアップグレード。

・自分のユーザーアカウント、rootのパスワードが消えてたよ。
作り直し。

・localeが4.6.2から変わってるみたいでperlがエラーを吐く。
LC_CTYPE, LANG を ja_JP.eucJP に変更。今まではja_JP.EUCだった。

・sendmailが変わったみたいで止めてるつもりなのに立ち上がろうとする。
rc.confで sendmail_enamble='NO' で今まで止まっていたが、NONEって書かないと完全に止まらない様になってる。

・Xfree86 4.2.1に。
Xwrapperが無くなってる?
→.XdefaultからXwrapperを立ち上げるはずだが。wrapperの名前がXwrapper-4に変更されてるみたいだ。

.cshrcに  > setenv XMODIFIERS @in=kinput2   を指定するとハング?
→結局、パッケージ化されたXfree86 4.2.1のライブラリにバグがあるみたいで、portsから入れ直せばオッケーらしい。
→http://home.jp.freebsd.org/cgi-bin/showmail/FreeBSD-users-jp/70642

・ソースは更新されないので、sysinstallで再度更新。
・/etc/printcapが上書きされていたので復元。

・mozilla, ftpで接続に時間がかかる
調べたら、resolveでDNS queryパケットがレコードタイプAAAAに対して発行される様になってるみたい。しかし、私のADSLルーターモデム(AtermDR202C)がレコードタイプAAAAのqueryパケットを無視するみたいでタイムアウトになるのを待ってしまうみたい。
ルータが悪いのか、FreeBSDが悪いのか判断付かないが、カーネルのコンフィグの中でoptions ipv6 をコメントアウトしてカーネル再構築。mozillaはこれでなおったがftpはやっぱり直らないので、ftpのエイリアスをftp -4 として.cshrcに追加。
portsで使うfetchも同様なので、/etc/make.confの中で FETCH_BEFORE_ARGS=-4 を設定。