pkgsrc/pkgtools/libkverを使うと、uname -r等を偽ることができる。
これによって、unameの情報を使うプログラムをだまして実行することができる。
pkgsrcのbinary packagesは、uname -sやuname -rを埋め込んでいる。
例えばNetBSD/amd64 current上でchroot環境を用意し、
NetBSD/amd64 6.1用のbinary packagesを作る場合に、libkverを使うことで
他のマシンでpkg_addが可能なbinary packageとすることができる。
こうしないと、NetBSD 6用のlibraryにリンクしているのに、
binary packageとしては、7.99.*用の情報が埋め込まれていて、
pkg_addしにくいbinary packageになってしまう。
また、pkgsrcのMakefileはunameの結果を使って条件分岐する箇所
があるので、buildに失敗するpackagesもあるはずである。
pkgsrc/pkgtools/libkverを使う場合については、
http://comments.gmane.org/gmane.os.netbsd.devel.packages/13587
にあるような手順が書かれているが、手作業でchroot環境を起動させる
場合については、若干分かりにくいように感じたので、手順を書いておく。
ちなみに、pkgsrc/sysutils/sudoを使っていないのは、sudoがLD_*という
環境変数を切り替え先の実行ユーザーに渡さない仕様であるからである。
先にsu(1)でrootになっておく。
(1) chroot環境の外側でlibkverをinstallする。
# cd /usr/pkgsrc/pkgtools/libkver
# make install
# make clean
(2) chrootに一度入り、chroot環境の内側でもlibkverをinstallする。
# chroot /usr/tmp/chroot/netbsd-6/root /bin/ksh
# cd /usr/pkgsrc/pkgtools/libkver
# make install
# make clean
# exit
(3) libkverを使ってchroot環境に入り直す。
ここでは、NetBSD/amd64 7.99.5上で、NetBSD/amd64 6.1に偽る場合を示す。
# kver -r 6.1 chroot /usr/tmp/chroot/netbsd-6/root /bin/ksh
# uname -r
6.1
# uname -a
NetBSD angelcake.elements.tetera.org 6.1 NetBSD 6.1 (LIBKVER) #0: Tue Jan 19 00:00:00 UTC 2038 root@localhost:/sys/arch/amd64/compile/LIBKVER amd64
登録:
コメントの投稿 (Atom)
Amazon Kindle Fire HD 8 第10世代でBluetooth audioのabsolute volumeを無効にする
Bluetooth接続のヘッドセット Bose Noise Cancelling Headphones 700を使っている のだが、 Amazon Kindle Fire HD 8 第10世代では、標準ではBluetooth audioのabsolute volume機...
-
Apache TomcatのフロントエンドにApche httpdを設置している環境がある。 Apache httpdとApache Tomcatの間は、AJP接続をしている。 Apache Tomcatを9.0.34にアップデートしたとこと、以下のようなエラーになってAJP接...
-
OCNをISPとして、回線はフレッツで利用しているのだが、IPoEなIPv6は使えるようになっているのだが、IPv4 over IPv6は利用できていない。 自分の環境でIPv4 over IPv6が使えるかどうか良く分からなかったので、使えるかどうかの確認方法を書いて...
-
Microsoft Windows 10で使っているHP ProBook 450 G3とG5があるのだが、このマシンの内蔵キーボードにはscroll lockキーがない。 しかし、何らかのタイミングでscrool lockキーが押されてしまう現象があった。 試してみると、Fn+...
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。