転載・引用について

ユーザ用ツール

サイト用ツール


os:osx:systems

文書の過去の版を表示しています。


システム設定

Last Update: 2014/02/14

ここでは、OS-Xに関するシステム設定方法のメモを主に扱う。

Swap suspend/Resume 関連

OS-Xでは、swapはswapfileで管理しているのだが、長期間使っていると結構毒がたまってくる。これが動作がもっさりする理由になったりするので、時々はcleaningした方がよい。

参考URL: [MacBook] swapをやめる。swapファイルの置き場所を変える。

要するに、以下の手順で作業すればよい

  1. swapを停止
    • terminal.appから以下を実行
    • sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
  2. 再起動
  3. /private/Var/vm/下にあるswapfile*を削除
    • terminal.appから以下を実行
    • sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
  4. swapを開始
  5. 再起動

これでOK

ちなみに、swapを停止するとスリープから復帰するときに画面がおかしくなったり、フリーズしたりするというリポートがあるので、注意。

Kernel Parameter Tuning

MacOS-XはFreeBSD由来のシステムなので、kernelのパラメータは簡単に調整できる。

Leopardまでは、/etc/sysctl.confが存在する場合、それを参照して起動時に設定できたが、SnowLeopardではlaunchdで対応するしか無いと思われる。

というわけで、Launchdでの設定方法。

  1. mkdir /Library/StartupItems/Sysctl
  2. 以下の内容を /Library/StartupItems/Sysctl/StartupParameters.plist に貼り付ける
    • <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
      <plist version="0.9">
      <dict>
      	<key>Description</key>
      	<string>Sysctl</string>
      	<key>Messages</key>
      	<dict>
      		<key>start</key>
      		<string>Starting Sysctl</string>
      		<key>stop</key>
      		<string>Stopping Sysctl</string>
      	</dict>
      	<key>OrderPreference</key>
      	<string>None</string>
      	<key>Provides</key>
      	<array>
      		<string>Sysctl</string>
      	</array>
      	<key>Requires</key>
      	<array>
      		<string>Network</string>
      	</array>
      </dict>
      </plist>
  3. 以下の内容を /Library/StartupItems/Sysctl/Sysctl に貼り付ける
    • #!/bin/sh
      
      case "$1" in
      	start)
      		echo "Starting Sysctl"
      		# limits
      		ulimit -HSd unlimited
      		ulimit -HSs unlimited
      		ulimit -HSu unlimited
      		ulimit -HSn unlimited
      
      		# FreeBSD style sysctl.conf
      		if [ -f /usr/local/etc/sysctl.conf ]; then
      			while read var comments
      			do
      			    case ${var} in
      			    \#*|'')
      					;;
      			    *)
      					/usr/sbin/sysctl -w ${var}
      					;;
      			    esac
      			done < /usr/local/etc/sysctl.conf
      		fi
      		;;
      	 stop)
      		echo "Shutting down Sysctl"
      		;;
      	*)
      		echo "Usage: $0 {start|stop}"
      		exit 1
      		;;
      esac
  4. chmod 755 /Library/StartupItems/Sysctl/Sysctl を実行
  5. /usr/local/etc/sysctl.confを作成
    • 内容はFreeBSDの物と同じで良い。今回は、以下で作成
    • #####
      # Sysctl parameter setting.
      #####
      # Kernel
      kern.maxproc=2048
      kern.maxprocperuid=512
      
      kern.maxfiles=16384
      kern.maxfilesperproc=14745
      kern.maxvnodes=66560
      
      # Network
      kern.ipc.somaxconn=4096
      kern.ipc.maxsockbuf=1048576
      
      net.inet.tcp.delayed_ack=0
      net.inet.tcp.rfc1323=1
      
      net.inet.tcp.sendspace=131072
      net.inet.tcp.recvspace=358400
      net.inet.udp.recvspace=73728
      net.inet.udp.maxdgram=57344
      net.inet.raw.recvspace=32768
      
      net.local.stream.sendspace=65535
      net.local.stream.recvspace=65535
      
      # net.inet.icmp.bmcastecho=0
      # net.inet.icmp.icmplim=600
      # net.inet.tcp.delayed_ack=0
      

ホスト名を固定に

Terminalとかを使っていて、ホスト名が色々変わってしまうのに気づいた人、これうっとうしいですよね。

これは、DHCP等でアドレスを割り当てられたときに、お節介にも逆引きからホスト名を設定されてしまうせいで発生します。

というわけで、ホスト名を固定するには、/etc/hostconfigに以下の行を追加します。

HOSTNAME=foo.example.org

Snow LeopardとemonsterでBT DUNを

どうやらLeopardと同じ方法でBT DUNできる模様。

参照URL

  1. EmonsterにEMONSTERまとめWIKI(FAQ)のBT-DUN接続はどのようにしたら良いですか?を参考にWM6_BT_DUN.cabをemonsterにインストール
  2. ここからこれ(Zipファイル)をダウンロード
  3. emonster.ccl.zipをunzipすると、emonster.cclができるので、/Library/Modem Scripts/にコピー
  4. ネットワーク設定追加
    • システム環境設定→ネットワークを開く
    • Bluetooh DUNを追加
    • Bluetoothデバイスを設定をクリック(ここでペアリング設定もできるので、ここまでペアリングしないこと)
    • Bluetoothデバイスの検索を始めるので、Emonsterを選択
    • Bluetooth携帯電話設定画面になるので以下を選択
      • 電話機の製造元→その他
      • 電話機の機種 →EMONSTER.ccl
      • ユーザー名  →em
      • パスワード  →em
      • 電話番号   →*99#
  5. これで設定終了。

Snow Leopardではずいぶん簡単になった。

MacOS-XでIP Addressにaliasを

opengear CM4008を設定する際に、Ethernet I/FにIP addressを複数付けたかったので、設定した。

$ sudo ifconfig en0 192.168.0.2/24 alias

要するに、普通のBSDと思えば良い。

ただし、arpがしばらく残るので、対象機器を変更する場合には、明示的にarpを消してあげなければならない。

$ sudo arp -d 192.168.0.1

これで、取りあえず、大丈夫かな。

環境変数を設定する

MacOS-Xで生活する場合、全般的に参照される環境変数を設定したくなる。しかし、shell環境でもない限り、設定方法が良くわからない。

というわけで、調べてみた。

結果、「いや、これ、どうなのよ?」という気分

以下 Mountain Lion

Mountain Lionだと個人環境で設定する方法は今のところ不明。 System wideに設定するには、/etc/path.d下に例えば10-PKGとかいうファイルを作って

/usr/pkg/sbin
/usr/pkg/bin

等と書けばいい模様。しかし、これはあまりにも気持ち悪い… この他に、/etc/launchd.confに環境変数を設定する方法もある模様。

setenv PATH /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/pkg/sbin:/usr/pkg/bin

という方法もあるらしい。これは設定すると再起動が必要。 しかし、これもあまりにもあまりだよなぁ。

Lion

調べてません。Snow Leopardまでの方法か、Mountain Lionの方法が使えるはず。

以下 Snow Leopardまで

個人環境の環境変数は、~/.MacOSX/environment.plistに書けばいいらしい。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" 
                      "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>DISPLAY</key>
        <string>localhost:0.0</string>
        <key>XAPPLRESDIR</key>
        <string>/usr/pkg/lib/X11/app-defaults</string>
</dict>
</plist>

システム起動時にdmgファイルをマウントする

起動時(もしくはlogin時)に、自作のDisk Imageファイルをマウントしてしまいたい場合がある。例えばpkgsrcとかの場合。これを、実現する方法を記載しておく。

Snow Leopard/Lion/Mountain Lionでも動作した

MacOS-Xでは、/System/Library/StartupItemsや/Library/StartupItemsにある設定を起動時に実行するので、 これを使って自動マウントを実現する。

System/Library/StartupItemsはシステム側で提供しているもので、/Library/StartupItemsはそれぞれの環境毎に設定されるものである。いわゆるサードパーティー製アプリケーションなどは後者を利用していル場合が多い。
前者はいつ書き換えられるか判らない(まぁ、ソフトウェアアップデートのタイミングが一番ありそうですが)ので、後者を利用すべき。

ここでは、「NetBSDのpkgsrcを利用する」で記載したDisk Imageを起動時にマウントする方法を記載する。

マウントしたいDisk Imageファイルが/Users/foo/BSD.dmgであるとする。

まず、StartupItemsにディレクトリを作成する。このディレクトリはシンボリックリンクでは動作しないので、実際にファイルやディレクトリを作成すること

$ sudo mkdir /Library/StartupItems/PKG

このディレクトリ内に、PKG(ディレクトリ名と同じ名前で作成)及びStartupParameters.plistというふたつのファイルを準備する。 これらのファイルはOwner:Groupがroot:wheelである必要があるので注意。

まず、PKGファイルの内容。

#!/bin/sh

exec > /tmp/PKG.log 2>&1

##
# Mount HFSX Filesystem for PKG
##

. /etc/rc.common

PKG_DISKIMAGE="/Users/foo/PKG.dmg"
PKG_MOUNTPOINT="/Volumes/pkg"

StartService ()
{
    local device

    if [ ! -f "${PKG_DISKIMAGE}" ]; then
        ConsoleMessage "No diskimage ${PKG_DISKIMAGE}"
        return 0;
    fi

    ConsoleMessage "Mounting HFSX Filesystem for PKG"

    hdiutil attach ${PKG_DISKIMAGE} \
        -mountpoint ${PKG_MOUNTPOINT} \
        -owners on -nobrowse # -notremovable -kernel
    sleep 1

    if [ -d ${PKG_MOUNTPOINT}/pkg/etc/rc.d ]; then
        for rc in ${PKG_MOUNTPOINT}/pkg/etc/rc.d*; do 
            ConsoleMessage "Starting ${rc##*/}";
            sh ${rc} start;
        done;
    fi
}

StopService ()
{
    return 0;
}

RestartService ()
{
    return 0;
}

RunService "$1"

このファイルは実行可能でなければならないので、
sudo chmod 755 /Library/StartupItems/PKGSRC/PKGSRC
を実行する。

次にStartupParameters.plistの内容。

{
        Description     = "Mount Filesystem for PKG";
        Provides        = ("PKG");
        Requires        = ("Disks");
}

これで再起動すると自動的にマウントするようになる。

このウェブサイトはクッキーを使用しています。 Webサイトを使用することで、あなたはあなたのコンピュータにクッキーを保存することに同意します。 また、あなたはあなたが私たちのプライバシーポリシーを読んで理解したことを認めます。 同意しない場合はウェブサイトを離れてください。クッキーに関する詳細情報
os/osx/systems.1526272518.txt.gz · 最終更新: 2018/05/14 13:35 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki