十月三十一日はハロウィーンだった2017年11月02日 12時03分18秒

十月三十一日はハロウィーンだった。今年は水曜日。帰って来るときに、ちらほら仮装して親子で歩いているのが何人か見えた。

自宅に着くと真っ暗。子供達は妻と近所を回っていたようだ。近所の学校の友達を誘って、四時から歩き回っていたとのこと。帰って来たのは六時半で、二時間半歩き通しだったそうだ。自宅に着いても、子供達は元気一杯で喜んで、貰って来たお菓子の数を数えていた。一口タイプの小さい物が主だが、それでも三百個。

特に娘は、この類のお菓子を食べると肌が荒れるのであげられない。そして、娘も食べさせてもらえないのはわかっている。それでも、貰って来ること自体が楽しいようでご機嫌だ。

FreeBSD EN tzdata2017年11月03日 12時19分44秒

FreeBSD-EN-17:09.tzdata が出ている。夏時間の変更の時期が前回 FreeBSD がリリースされた時から、変わっているため新たに更新する必要があるとのこと。

対象の地域については言及されていないが、対象外の地域では問題ないとのこと。日本は夏時間の設定が無いので影響無し。影響がある地域の場合は cron や syslog の時刻がずれてしまう。

FreeBSD で amd64 を TARGET=amd64 を使って i386 上でクロスコンパイル2017年11月04日 10時35分05秒

最近、FreeBSD 上のクロスコンパイルに関する文章が少ないので、実験結果をすこし残しておく。まだ、試行錯誤中なのでうまくいったのは確認できたが、最小ステップなのかまでは検証できていない。

今回は、FreeBSD 11.1-STABLE が母艦。11.1-RELEASE が出た後の、11-STABLE ブランチになる。i386 の機械で amd64 向けのバイナリを作る。TARGET の中で、amd64 を試す。

今回は以下の三手順で問題なく amd64 のカーネルを作れたのを確認できた。

% make xdev-build TARGET=amd64
% make kernel-toolchain TARGET=amd64
% make buildkernel TARGET=amd64
この後、i386 システムに amd64 のカーネルインストールをした。そちらは次に取り上げる。

/usr/src/Makefile を見ると xdev で始まるターゲットが幾つかある。十年前の自分の記録を見ても、そのときは使っていなかった。xdev ターゲットは、xdev-build と xdev-install を行うと書いてあるが、今回試した手順では、xdev-install は必要なかった。もしかしたら、xdev-build 自体もいらなかったのかも。

buildkernel は kernel-toolchain に明示的に依存されていないみたいで、これを別途で行わないと現在のシステムのものが使われてしまうようだ。これは、クロスコンパイルでなくても見うけられる動作。だた、同一アーキテクチャの場合は互換性が高い場合がほとんどなので、滅多にエラーになることはない。

前回次回

アメリカでも夏時間が終った2017年11月06日 12時50分56秒

今回の週末でアメリカの夏時間が終った。日曜日から一時間時計を戻す。日の出の時間が遅くなるが、日の入りの時刻が早くなる。五時には既に真っ暗になる。

自宅で使っている FreeBSD は Windows とのディアルブートになっていて、Windows が管理するローカル時刻になる。そのため、一度 Windows を起動して、時刻を合わせる。

仕事場は今回、時刻合わせの点検の担当になったので、各々の機械の時間を点検し、問題なく動いているのを確認した。

FreeBSD で amd64 カーネルを i386 システムにインストール2017年11月07日 13時46分53秒

amd64 のカーネルが作れたので、i386 システムに上書きインストールをしてみる。

FreeBSD 11.1-STABLE の i386 版が母艦。11.1-RELEASE が出た後の、11-STABLE ブランチになる。i386 の機械で amd64 向けのバイナリを作った。これを、複製した i386 システムに入れてみた。

前回の手順

% make xdev-build TARGET=amd64
% make kernel-toolchain TARGET=amd64
% make buildkernel TARGET=amd64
に加えて、/mnt/stable にマウントしてある別のシステムに、インストールをする。root での作業。
$ make installkernel TARGET=amd64 DESTDIR=/mnt/stable

この後再起動してみた。init は問題なく進んだが、幾つか起動に失敗したものがあった。zfs などを筆頭とする、ライブラリとシステムの依存関係の強いシステム系のコマンドは動いていない。X もライブラリだか何かに問題があるらしく、起動しない。

amd64 のカーネルは、i386 の単純なライブラリやコマンドは問題なく動かせるようだ。amd64 のシステムコールとライブラリに依存するコマンドも動かなかった。取り敢えず、amd64 の i386 バイナリ互換は現在もあるようだ。

前回次回

FreeBSD で buildworld のクロスコンパイルとインストール2017年11月09日 13時01分30秒

FreeBSD で amd64 カーネルだけを i386 システムに上書きインストールしたら、zfs 等が使えない。そこで、今度は buildworld と installworld も行った。

クロスコンパイルの buildkernelをやった後に、以下の二つのコマンドを追加して、ユーザランドも入れ換えた。

% make buildworld TARGET=amd64
% su -l
$ make installworld TARGET=amd64 DESTDIR=/mnt/stable -C /usr/src
なお、buildworld の最後に 32bit の互換ライブラリが作られていた。

まとめると、今回までで、最終的にクロスコンパイルとインストールに使ったコマンドは以下の通り。i386 上で amd64 を作りインストールをした。ただ、まだこれが最短手順かの確認は出来ていない。

% make xdev-build TARGET=amd64
% make kernel-toolchain TARGET=amd64
% make buildkernel TARGET=amd64
% make buildworld TARGET=amd64
% su -l
$ make installkernel TARGET=amd64 DESTDIR=/mnt/stable -C /usr/src
$ make installworld TARGET=amd64 DESTDIR=/mnt/stable -C /usr/src

前回次回

今秋一番の冷え込み2017年11月11日 14時19分28秒

金曜日はとても冷え込んだ。夕暮れ時で、既に摂氏零付近。帰りの自転車は、外気温を調べて寒そうだったので、一枚余計にジャケットを羽織って出た。

寒いためか、セントラルパークでは人も自転車も疎ら。自転車だとそこまで寒くは無かったが、ジョージワシントン橋に近付く頃には、耳と足先が冷えてきていた。まだ、寒い日が続くわけではないので、ブーツや帽子は今日は持たなかった。

深夜には、零下五度ぐらいにまで下がっていたようだ。

暖炉に火を入れて遊ぶ2017年11月13日 14時29分47秒

金曜日からニューヨーク近隣は一気に冷え込んだ。その前までは、摂氏十五度近くはあったのだが、金曜日から氷点下。昼間は若干暖かかったが、夜には二十窓からも冷気がただよってきた。

土曜日も寒かった。昼間は摂氏五度ぐらいはありそう。土曜日の日本語学校を追えた後にすぐに帰ろうと思ったが、子供達は公園で遊んでいきたいとのこと。落葉が一気に進んで、公園が落葉だらけになっていて、落葉の山を作ったりして遊んでいた。四十分ぐらいで、日も傾いてきたて冷え込んできたので帰宅。

土曜日と日曜日に、暖炉に薪を組み点火。部屋全体を暖かくは出来ないが、多めに薪をくべると、暖炉の前は温かくなった。

FreeBSD で amd64 を i386 システムに上書きインストールした環境2017年11月14日 13時53分07秒

FreeBSD 11.1-STABLE のコードを i386 システム上で amd64 をコンパイルし、i386 システムに上書きインストールしてみた。

カーネルだけ入れ換えた時は、zfs 等の一部のシステムコマンドが使えなかった。今回は、installworld も行い、ユーザランドもしっかりと amd64 のシステムにした。

これにより、zfs 等を始めとするシステムコマンドが置き換えられたために、起動時にいつくか見られていたエラーは全て消えた。

しかし、pkg から入れた Xorg のライブラリがまだ、見付からずに X 関連がまだ起動しない。それ以外は動いているようだが、X が動かないと使えるプログラムがかなり限られてしまう。

最終的に、pkg も pkg update と pkg upgrade をして、全て入れ換えてしまった。pkg は i386 から amd64 に切り替わったのを認識し、upgrade で全てを入れ換えた。この後は、X 関連も全て動いている。

前回

FreeBSD の SA が三つ2017年11月16日 12時59分58秒

FreeBSD-SA-17:08.ptrace は、ptrace が未処理のデータを漏らす可能性があるバグ。対象は 10 系と、11 系の全て。

FreeBSD-SA-17:09.shm も同じく shm を通して IPC を行っている場合に、カーネル内のデータを漏らしてしまうバグだが、jail 越しの環境で起こる問題。こちらの対象は 10 系のみ。

カーネルメモリの漏洩バグが続くが、FreeBSD-SA-17:10.kldstat.asc も似たように kldstat が未初期化のデータを漏らす。こちらの対象は 10 系と、11 系の全て。