FreeBSD Tips: Difference between revisions

no edit summary
No edit summary
No edit summary
 
(63 intermediate revisions by the same user not shown)
Line 1: Line 1:
*ethernetのmedia typeを明示的に設定
何故だか flow control が off になっていたので調べた
https://gihyo.jp/admin/clip/01/fdt/201104/08
http://www.jp.freebsd.org/QandA/HTML/2460.html
*ntpdで警告
<syntaxhighlight lang="text" enclose="div">
leapsecond file ('/var/db/ntpd.leap-seconds.list'): expired 19 days ago
</syntaxhighlight>
<syntaxhighlight lang="bash" enclose="div">
service ntpd fetch
fetch: https://www.ietf.org/timezones/data/leap-seconds.list: Not Found
</syntaxhighlight>
あらら...
/etc/rc.conf に
<syntaxhighlight lang="text" enclose="div">
ntp_leapfile_sources="https://data.iana.org/time-zones/data/leap-seconds.list"
</syntaxhighlight>
追加して、オッケー
*FreeBSD リハビリwメモ
やってみたらやっぱりそうだったw
<syntaxhighlight lang="bash" enclose="div">
protect -dip 1
</syntaxhighlight>
*FreeBSD リハビリwメモ
FreeBSD-EN-23:19.pkgbase
をソースからやると make packages でこける。KERNCONF=foo を指定している場合は、make packages KERNCONF=foo
あと ports からいれた モジュールはこけるので、make.conf から PORTS_MODULES を外しておく。
あぁそうか素カーネルでないと意味ないな。とりあえず作っておくか...
*MacBook6,1 (13-Inch, Late 2009) unibody polycarbonate white 再生計画 その8
14.0-p1 が安定して稼働してるので、このハードウェアにあった設定を見直していたら、以前放置していた iSight がサックリ稼働した。
<syntaxhighlight lang="bash" enclose="div">
portmaster multimedia/libuvc multimedia/webcamd
</syntaxhighlight>
<syntaxhighlight lang="conf" enclose="div">
webcamd_enable="YES"
webcamd_0_flags="-d ugen1.2"
</syntaxhighlight>
後は、/dev/video0 /dev/usb/1.2.* 等のパーミッションを devfs.conf でごにょごにょ か operator webcamd の group に所属。
よい機会なので Autoloading module は loader.conf で明示的に _load="YES" にした。
*FreeBSD リハビリwメモ
*FreeBSD リハビリwメモ
FreeBSD 14.0 が出たので 13.2-p5 から、古式ゆかしくソースから upgrade した。いろいろハマり所があったのでメモ。
FreeBSD 14.0 が出たので 13.2-p5 から、古式ゆかしくソースから upgrade した。いろいろハマり所があったのでメモ。


'''この作業をする前に、あらゆる ports で入れたものを rc.conf で OFF にする。(ここ重要。base system が提供しているライブラリとの不整合等があるので upgrade して make delete-old-libs 後に確認する事)'''
'''この作業をする前に、あらゆる ports で入れたものを rc.conf で OFF にする。(ここ重要。base system が提供しているライブラリとの不整合等があるので upgrade して make delete-old-libs 後に確認する事)'''
'''(network系 daemon で crash (kernel panic) する。avahi-daemon は駄目っぽい)'''
'''(network系 daemon で crash (kernel panic) する。avahi-daemon は駄目っぽい。gdb がライブラリ不整合にハマっているので解析は後でする)'''


make buildworld, make kernel した後 reboot していったん single user mode で起動。ここで あらゆる filesystem に対して full-fsck する事。
make buildworld, make kernel した後 reboot していったん single user mode で起動。ここで あらゆる filesystem に対して full-fsck する事。
Line 9: Line 64:


その single user で etcupdate -p して make installworld した後 reboot してまた single user mode で起動。もう一度 make kernel する。
その single user で etcupdate -p して make installworld した後 reboot してまた single user mode で起動。もう一度 make kernel する。
(13.2 の libc のバージョンが古くて、最初の kernel をビルドする時に __cxa_thread_call_dtors: dtr 0xXXXXXX from unloaded dso, skipping のエラーが出てて気持ち悪いので、installworld 後に、改めて make kernel する)
(13.2 の libc のバージョンが古くて、最初の kernel をビルドする時に __cxa_thread_call_dtors: dtr 0xXXXXXX from unloaded dso, skipping のワーニングが出ていて気持ち悪いので、installworld 後に、改めて make kernel する)('''実際のところ、この場合も __cxa_thread_call_dtors が出た。(下にも書いたが)delete-old の後に、もう一度 make world して解消。''')
 
etcupdate -B で「コンフリクトしてるから駄目よ」と言われたら、とりあえず h -> mf で古いのを生かす。(/etc/group と /etc/master.passwd)(先頭のコメント行が不要になるので、あとで手修正する)('''root の shell が (t)csh から sh に変更されたのに注意。スパルタンな仕様に戻ったw これも大きな仕様変更かも''')、これがおわったらいよいよ reboot して multi user mode に突入。(root の login shell を /bin/sh にしてからいろんな作業をすべきなのかもね)
etcupdate -B で「コンフリクトしてるから駄目よ」と言われたら、とりあえず h -> mf で古いのを生かす。(/etc/group と /etc/master.passwd)(先頭のコメント行が不要になるので、あとで手修正する)('''root の shell が (t)csh から sh に変更されたのに注意。スパルタンな仕様に戻ったw これも大きな仕様変更かも''')、これがおわったらいよいよ reboot して multi user mode に突入。(root の login shell を /bin/sh にしてからいろんな作業をすべきなのかもね)
('''/bin/sh にした後 stage1, stage2 みたいに、2回目の天地創造wしたら __cxa_thread_call_dtors のワーニングが消えた。これからが本当の地獄^h^h世界だw''')


無事 マルチユーザーモードで上がってきたら check-old delete-old check-old-libs delete-old-libs (最後に check-old-dirs delete-old-dirs)


(ports-mgmt/portmaster devel/git devel/ccache sysutils/screen devel/dbus sysutils/powerdxx sysutils/smartmontools)
('''delete-old して、root の login shell を /bin/sh にした後 stage1, stage2 みたいに、2回目の天地創造wしたら __cxa_thread_call_dtors のワーニングが消えた。これからが本当の地獄^h^h世界だw''')


無事 マルチユーザーモードで上がってきたら check-old delete-old check-old-libs delete-old-libs (最後に check-old-dirs delete-old-dirs)、あらゆる ports の update する。最初に pkg bootstrap -r
新しい世界wで、あらゆる ports の update する。(最初に pkg bootstrap -r)


kernel driver 関連でこの修正に対応できていないのは自分でなんとかするw
kernel driver 関連でこの修正に対応できていないのは自分でなんとかするw ('''__cxa_thread_call_dtors のワーニングが消えた状態では、互換機能が動くのでなにもしないでヨシ''')
  https://reviews.freebsd.org/rG2a99dd30dfaac98fea79f084b3a13c45199e1348
  https://reviews.freebsd.org/rG2a99dd30dfaac98fea79f084b3a13c45199e1348


'''portsnap が削除された。'''git 使えてか...
'''portsnap が削除された。'''git 使えてか...
git clone https://git.FreeBSD.org/ports.git /usr/ports
<syntaxhighlight lang="bash" enclose="div">
やたらとバイナリーパッケージ推しになってるが、無視して老人会モードで逝くw (油断してたら、せっせと手インストールした ports を消されてしまったw)
git clone https://git.FreeBSD.org/ports.git /usr/ports
</syntaxhighlight>
やたらとバイナリーパッケージ推しになってるが、無視して老人会モードで逝くw (油断してたら、せっせと手インストールした ports かなりの数が消されてしまったw)
 
git pull のあと make index がいるのかね。fetchindex はまだ動作するね
<syntaxhighlight lang="bash" enclose="div">
cd /usr/ports
make fetchindex
</syntaxhighlight>


過去にインストールした ports すべての再インストール (泣)  (portmaster の man page から)
('''__cxa_thread_call_dtors のワーニングが消えた状態になったら''')過去にインストールした ports すべての再インストールが必須。 (portmaster の man page から)
 
('''最低限 /usr/local/etc のバックアップしておくこと。/usr/ports/distfiles 以下のソースもとっておく方がトラフィック削減でベター''')
<syntaxhighlight lang="bash" enclose="div">
<syntaxhighlight lang="bash" enclose="div">
cd /usr/ports/ports-mgmt/portmaster
cd /usr/ports/ports-mgmt/portmaster
Line 41: Line 107:
# to make sure that they are really empty
# to make sure that they are really empty
# Install ports-mgmt/pkg and then ports-mgmt/portmaster.
# Install ports-mgmt/pkg and then ports-mgmt/portmaster.
# Remove both from ~/installed-port-list.
cd /usr/ports/ports-mgmt/pkg
make install clean
cd /usr/ports/ports-mgmt/portmaster
cd /usr/ports/ports-mgmt/portmaster
make install clean
make install clean
# Remove both from ~/installed-port-list.
# もし独自のパッチがある場合はそれも確認。
portmaster --no-confirm `cat ~/installed-port-list`
portmaster --no-confirm `cat ~/installed-port-list`
</syntaxhighlight>
</syntaxhighlight>


おおおお sudo が無いw ports から入れるw (前からなかったかのかな)
(ports-mgmt/portmaster devel/git devel/ccache devel/gdb sysutils/screen security/sudo sysutils/htop sysutils/topless devel/dbus sysutils/powerdxx sysutils/smartmontools)
 
これだけは先にインストールする。(今、(ccacheはいれたが)これを忘れて長時間の再ビルド中...最低でも screen は再インストールしておくべきだったと。何かあったときに attach できないおそれがw)


'''kernel panic は ieee80211 あたりだとわかった。(avahi を疑っていたのだが、deny-interfaces=wlan0 したらサックリ動く)(ieee80211_crypto_ccmp.c 辺り) MacBook用wの bwn は 13.x では超安定してたのだが 14.0 では不安定。何でだろ〜^3 いろいろ調べたら、いろんな ieee 802.11 系で同じ症状らしい。まぁ昔から FreeBSD は Wi-Fi(NFSもw) には冷淡だし...'''
'''kernel panic は ieee80211 あたりだとわかった。(avahi を疑っていたのだが、deny-interfaces=wlan0 したらサックリ動く)(ieee80211_crypto_ccmp.c 辺り) MacBook用wの bwn は 13.x では超安定してたのだが 14.0 では不安定。何でだろ〜^3 いろいろ調べたら、いろんな ieee 802.11 系で同じ症状らしい。まぁ昔から FreeBSD は Wi-Fi(NFSもw) には冷淡だし...'''


(自分の環境は bwn に依存した構成になっているので、もう少し頑張る...)
(自分の環境は wlan に依存した構成になっているので、もう少し頑張る...)(修正がはいらないと駄目っぽいので、手持ちのOpenWrt機器のWi-Fi bridge経由でアクセスするか...)
(手持ちの Ralink MT7601U で試してみるが、ieee80211_crypto_ccmp 辺りで落ちているのなら同じかもね->ドライバーが無かった。実験中のドライバーはあるが...)
(まだブラックフライデー対応してたので、動きそうな古めのUSB Wi-Fiアダプターをいくつか買った。届いてからテストする)
 
tp-link TL-WN725N (Realtek RTL8188EU) が届いて、サックリ安定して動きました!!!! (if_rtwn_usb_load="YES"  rtwn-rtl8188eufw_load="YES")
(country=JP してるのだが、変わってない希ガス)(ports の security/wpa_supplicant 使えば JP を認識した。これいろいろヤバいかもね。)
 
最低限のカスタマイズ .shrc
<syntaxhighlight lang="sh" enclose="div">
set -I
set -E
</syntaxhighlight>
 
X11関連の設定も少し挙動が変わってた。fcitx が自動で起動しないので、~/.config/autostart/fcitx.desktop を作って Exec=/usr/local/bin/fcitx -r -d してオッケー
 
14.0 関連のリンク Errata 系
https://www.daemonology.net/blog/2023-11-21-late-breaking-FreeBSD-14-breakage.html
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260841


*FreeBSD リハビリwメモ
*FreeBSD リハビリwメモ
あーーーーーー kibana7 が削除されたが kibana8 が動かない! オワタ
あーーーーーー kibana7 が削除されたが kibana8 が動かない! オワタ


openjdk は 17 に統一して、node は 18 に固定して kibana8 Makefile に手を加えた。
openjdk は 17 に統一して、node は 18 に固定して kibana8 に手を加えた。
 
/usr/ports/textproc/kibana8/Makefile.local を作成
<syntaxhighlight lang="make" enclose="div">
BUILD_DEPENDS= npm-node18>=9.7.2:www/npm-node18
RUN_DEPENDS= ${LOCALBASE}/bin/node:www/node18
USES= compiler:c++17-lang cpe nodejs:18,build,run python:build
</syntaxhighlight>
 


elastic stack version 8 にあげていろいろホゲった。混乱の極みw いろいろ認証を必須にした結果ぐちゃぐちゃ&細かなバグいっぱい。
elastic stack version 8 にあげていろいろホゲった。混乱の極みw いろいろ認証を必須にした結果ぐちゃぐちゃ&細かなバグいっぱい。
Line 78: Line 174:
mozc 系での python3.10 の場合 AttributeError: module 'collections' has no attribute 'MutableSet' は、無理矢理FIX
mozc 系での python3.10 の場合 AttributeError: module 'collections' has no attribute 'MutableSet' は、無理矢理FIX


/usr/local/lib/python3.10/site-packages/gyp/common.py
/usr/ports/devel/py-gyp/files/patch-pylib_gyp_common.py を作成
<syntaxhighlight lang="diff" enclose="div">
<syntaxhighlight lang="diff" enclose="div">
--- pylib/gyp/common.py.oig
+++ pylib/gyp/common.py
@@ -494,7 +494,7 @@ def uniquer(seq, idfun=None):
# Based on http://code.activestate.com/recipes/576694/.
-class OrderedSet(collections.MutableSet):
-class OrderedSet(collections.MutableSet):
+class OrderedSet(collections.abc.MutableSet):
+class OrderedSet(collections.abc.MutableSet):
  def __init__(self, iterable=None):
    self.end = end = []
    end += [None, end, end]        # sentinel node for doubly linked list
</syntaxhighlight>
</syntaxhighlight>
'''./scripts/post-patch''' でうんぬんというやり方わすれた...


*Upgrade ミスってったようだ
*Upgrade ミスってったようだ