media-video/mpv-0.27.2がemergeできない
できた
それ以前で有効だったUSEフラグを建てっぱなしにしておくと問題が出るみたい
フラグを建てっぱなしで放置するとなんか大変なことに巻き込まれるのラノベみたいじゃんね
なにがおきた
media-video/ffmpegを4.1にアップグレードすると、preserved-rebuildが必要になる
なのでmpvもリビルドだかあっぷぐれーどだかが必要になったのでリビルドする
You manually enabled the feature 'cuda-hwaccel', but the autodetection check failed. * ERROR: media-video/mpv-0.27.2::gentoo failed (configure phase): * configure failed * * Call stack: * ebuild.sh, line 124: Called src_configure * environment, line 4250: Called waf-utils_src_configure '--confdir=/etc/mpv' '--docdir=/usr/share/doc/mpv-0.27.2' '--htmldir=/usr/share/doc/mpv-0.27.2/html' '--disable-libmpv-shared' '--disable-libmpv-static' '--disable-static-build' '--disable-optimize' '--disable-debug-build' '--enable-html-build' '--disable-pdf-build' '--disable-cplugins' '--enable-zsh-comp' '--disable-test' '--disable-android' '--enable-iconv' '--disable-libsmbclient' '--enable-lua' '--disable-javascript' '--enable-libass' '--enable-libass-osd' '--enable-zlib' '--disable-encoding' '--disable-libbluray' '--disable-dvdread' '--disable-dvdnav' '--disable-cdda' '--enable-uchardet' '--disable-rubberband' '--disable-lcms2' '--disable-vapoursynth' '--disable-vapoursynth-lazy' '--disable-libarchive' '--enable-libavdevice' '--disable-sdl2' '--disable-sdl1' '--disable-oss-audio' '--disable-rsound' '--disable-sndio' '--enable-pulse' '--disable-jack' '--disable-openal' '--disable-opensles' '--enable-alsa' '--disable-coreaudio' '--disable-cocoa' '--disable-drm' '--disable-gbm' '--disable-wayland' '--enable-x11' '--enable-xv' '--disable-gl-cocoa' '--enable-gl-x11' '--enable-egl-x11' '--disable-egl-drm' '--disable-gl-wayland' '--disable-vdpau' '--disable-vdpau-gl-x11' '--disable-vaapi' '--disable-vaapi-x11' '--disable-vaapi-wayland' '--disable-vaapi-drm' '--disable-caca' '--disable-jpeg' '--disable-rpi' '--disable-plain-gl' '--disable-mali-fbdev' '--disable-vaapi-hwaccel' '--disable-vdpau-hwaccel' '--enable-cuda-hwaccel' '--disable-tv' '--disable-tv-v4l2' '--disable-libv4l2' '--disable-audio-input' '--disable-dvbin' '--disable-apple-remote' '--disable-build-date' * environment, line 5204: Called die * The specific snippet of code: * CCFLAGS="${CFLAGS}" LINKFLAGS="${CFLAGS} ${LDFLAGS}" "${WAF_BINARY}" "--prefix=${EPREFIX}/usr" "${libdir[@]}" "${@}" configure || die "configure failed" * * If you need support, post the output of
emerge --info '=media-video/mpv-0.27.2::gentoo'
, * the complete build log and the output ofemerge -pqv '=media-video/mpv-0.27.2::gentoo'
. * The complete build log is located at '/var/tmp/portage/media-video/mpv-0.27.2/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-video/mpv-0.27.2/temp/environment'. * Working directory: '/var/tmp/portage/media-video/mpv-0.27.2/work/mpv-0.27.2' * S: '/var/tmp/portage/media-video/mpv-0.27.2/work/mpv-0.27.2'
通らない!
なにした
大事なのは
You manually enabled the feature 'cuda-hwaccel', but the autodetection check failed.
この部分で、なんかcudaに対する某かが問題を起こしているっぽい
sudo flaggie --strict media-video/mpv -cuda
してcuda系のUSEフラグを外す
通る
おわり
なんかわからんけれど問題なく通ったのでよかった(こなみるく)
何に使っていたフラグなのか覚えていないけれど覚えていないってことは要らないってことでしょ
wireguard入門した時に困ったところ
公式もdebian wikiもarch wikiも相当充実しているのに結構詰まりました
わたしにやさしくして
鯖側
# sysctl -w net.ipv4.ip_forward=1
をやっておくこと
これやらないとなんかよくわからんがダメみたい
wireguardのインターフェースから通常のインターフェースへ、又は逆へのトラフィックの転送を可能にするっぽい
でもこれって鯖側のwireguard設定につけることになるであろう、
/etc/wireguard/wgnet0.conf
PostUp = iptables -A FORWARD -i wgnet0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE PostDown = iptables -D FORWARD -i wgnet0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
とかがあれば要らなそうに思える(けれど必要)
よくわかんないね
蔵側
DNSの設定を忘れないこと
特に設定していなければ基本的に問題はなさそうだけれど、私はdnsmasqとdoh-client
で適当に弄っているのでだめだったっぽい
/etc/dnsmasq.conf
に変更を書き加えれば問題なく動く
interface=wgnet0
その他
私は困らなかったけれどなんだかハマりそうな雰囲気を漂わせている部分があった
wireguardの設定ファイルにDNS= hogehugaを入れた時にdbus-org.freedesktop.resolve1.service not found.
的メッセージが出て失敗する
これはFS#54796 : [systemd] missing dbus-org.freedesktop.resolve1.service when using systemd-resolve
が役に立ちそうな雰囲気だった
見たかんじsystemd-resolvedが動いていれば勝手にdbus-org.freedesktop.resolve1.service
へシンボリックリンクが貼られる様になって問題なく起動する様になるっぽい
他人事なので完全に適当に言っています
ここを参照しました:
WireGuard VPN Walkthrough
WireGuard: fast, modern, secure VPN tunnel
Wireguard - Debian Wiki
88x2buドライバのebuildを書いた時にめっちゃ困ったところ
公式docを読んだら完全に解決したし持つべきものは友と公式docなんだなあ
あらためてそうおもいました
src_prepare()は中身を弄ったらeapply_userが必要になる
EAPI Usage and Description – Gentoo Development Guide
The eapply_user command permits the package manager to apply user-provided patches. It must be called from every src_prepare function.
Note:eapply_user doesn't need to be called explicitly when default src_prepare is called.
これどういうことなのか良くわからなくて無限に文句を言われました…(公式docを読めていない)
標準のsrc_prepareを呼ぶのなら要らないよ!の意味が分かっていなかった
src_prepare()を書き加えたらeapply_user
をsrc_prepare()の適当なところに足そう
MODULE_NAMESの書き方
Installing ${modulename} module" cd ${objdir} || die "${objdir} does not exist
とか言われたらこれが間違っている可能性が高いと思う
Gentoo Development Guide: linux-mod.eclass
modulenameは兎も角、libdir, srcdir, objdirがよくわからなくて詰った
基本的にはlibdirだけを自分で書いてsrcdirは${S}に(つまりデフォルトのままで良い)して、objdirもそのまま(つまりsrcdirと同じ)で問題なかった
色々なmoduleのebuildを見て回ったけれど基本的にこれだしアンパイがこれそう
おわり
問題なくemergeが通る様になるとemerge -av @module-rebuild
に88x2buのパッケージが並ぶ様になる
これで毎回手動make install
する必要がなくなっていいわねー🤗
gentoo-overlay/rtl88x2bu-9999.ebuild at master · karubabu/gentoo-overlay · GitHub
☝️(´・ω・`)書いたやつはこれなので"こうすると後々何か起きた時に分かりやすいよ"とか"こっちの方がええで"的なサムシングくれるイケメンはください!
linux版 Civ5はsys-libs/glibcとx11-libs/libxcbをsys-devel/gcc-8.2.0-r2でビルドすると動作しなかった
タイトルの通りです
なにがあった
# gcc-config -l [1] x86_64-pc-linux-gnu-7.3.0 [2] x86_64-pc-linux-gnu-8.2.0 *
この状態で
# emerge -e @world
してシステム全体をビルドし直すと、Civ5を起動出来無くなった
実際はビルドし直した後からしばらく経ってからCiv5を起動してみているので本当にここが原因か確実と言える自信はないのかも…
どうした
コンソールで直に起動しようとすると、segmentation faultと出て終了している
dmesgを見ると、
と言われている
とりあえず前のemerge -e @world
が原因の可能性があるので、gccを7.3.0に戻した状態でlibxcb.soをインストールしたパッケージであるx11-libs/libxcbを再ビルドする
% equery b libxcb.so * Searching for libxcb.so ... x11-libs/libxcb-1.13 (/usr/lib64/libxcb.so -> libxcb.so.1.1.0) x11-libs/libxcb-1.13 (/usr/lib32/libxcb.so -> libxcb.so.1.1.0)
# emerge -av x11-libs/libxcb
これをやったところ、まだsegmentation faultで落ちた
dmesgを見ると、
今度はlibpthread-2.27.soで落ちているのでsys-libs/glibcをビルドし直した
% equery b libpthread-2.27.so * Searching for libpthread-2.27.so ... sys-libs/glibc-2.27-r6 (/lib64/libpthread-2.27.so) sys-libs/glibc-2.27-r6 (/lib32/libpthread-2.27.so)
# emerge -av sys-libs/glibc
これで無事起動する様になった
おわりに
なんか一瞬で解決したしdmesgとか使って何が悪いのか調べたし雰囲気めっちゃ強そうじゃない??
ほめてね(何もわからんのにgcc8でシステムをビルドし直すな)
新しめの無線子機を使う時に確認しておきたいドライバ内容
なんか本文で何を言いたいのかよくわかんないね
新しめの無線アダブターを使おうとすると大体ギッヨパブからドライバーのソースコードを拾ってきて自前でビルドしてmodprobeみたいな流れをしなければならないよね
その無線アダプターが使うチップセットに対応したドライバでもその無線アダプターで使えることをドライバが知らないことがあるので、それを対応付ける作業が必要になるかもしれない
ということです
私もよくわかっていないけれど多分こんな感じだと思う
どういうことなものなの
ソースコードをcloneしてディレクトリの中に入った後grep USB_DEVICE\(0 ./os_dep/linux/usb_intf.c
するとズラズラと何かが出てくる
これらがこのドライバをインストールした時に使える様になるデバイスの一覧、だと思っています
つまりここに無ければ起動しない(一敗)
ここに自分が使う無線アダプターの情報を書き加えてビルドし直す必要がある
どうした
公式がソースコードを公開している場合が多いので、それを取得してくる
公式が公開しているソースコードは自分の環境で動くかどうかは別として、その無線アダプターに対応したコードなので上記のデバイス一覧に間違いなく目的のコードが入っている
その行を見付ける為の目星を付ける必要がある
そこでその無線アダプターのBus IDを調べる
これはlsusb
ですぐ分かる
例としては、TP-LINK Archer T4U v3ではBus 003 Device 002: ID 2357:0115 TP-Link
となっているので2357:0115
のあたりがそれだと思う
後は公式のソースコードがあるディレクトリでgrep USB_DEVICE\(0 ./os_dep/linux/usb_intf.c | grep 2357
とかをすると目的の行が見付けられる
後は知り得た情報を使ってソースコードを追記する
追記するファイルは./os_dep/linux/usb_intf.c
追記する場合、プリプロセッサのCONFIG_RTLXXXXB
などのディレクティブに注意して貼り付けること
大体コピペする予定の行にある.driver_info
がCONFIG_
に続く内容になっているので適当に探す
ビルドする できる
おわりに
これをTP-LINK Archer T4U v3についてやったものがこれです
GitHub - karubabu/rtl88x2BU_WiFi_linux_v5.2.4.4_26334.20180126_COEX20171012-5044: rtl88x2bu driver updated for modern kernels.
$ uname -r 4.17.12-gentoo
で動いています
多分もっときちんとググればこんなことプヨが既にやってあるコードを見付けられそう
DNS over Torする
やってみたかっただけDNSネタまたやった
公式がめちゃ丁寧に解説してくれるので特に困らず設定が出来てえらい
折角なので残しておくけれど本当に公式を読めばよいだけになっています
とは言っても本当に出来ているのか不安になる不死はあるので、出来てないやん!みたいなやつはおしえて…
特にDNS over HTTPS over Tor with dnsmasqあたりは本当に不安になっています
よくよむ
Introducing DNS Resolver for Tor
DNS over Tor - Cloudflare Resolver
とくによむ
DNS over Tor · pi-hole/pi-hole Wiki · GitHub
ここすき
続きを読むYour personal anonymity, however, is not the only reason why you should use this service. The power of Tor in ensuring everyone’s anonymity rests on the number of people who use it. If only whistleblowers, for instance, were to use the Tor network, then anyone connecting to the Tor network would automatically be suspected of being a whistleblower. Therefore the more people use Tor to browse memes or to watch cat videos on the Internet, the easier it will be for those who truly need anonymity to blend in with the traffic.