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.
floでopengappsがインストールできるAICPをビルドした
そのままビルドすると/systemの容量が足りなくてopengappsが追加で入らない
なのでAICPに標準で入っているアプリや機能をいくらか消して容量を減らすよというやつ
私は成功したけれど他の人が成功するのか全くわからないし、完全にその場凌ぎなので数ヶ月後にはまたopengappsが入らなくなりそう
なにをした
基本的に一つ前の記事の続きをやっています
GitHub - karubabu/IceManifests: floでAICPをopengapps付きで使うためのlocal_manifests
このレポジトリにあるxmlファイルをlocal_manifestsに追加してrepo syncする
local_manifestsとはなんぞやとなった時はAndroid ビルドで学ぶ git-repo 入門 | dev:mordifordを読む
✨ほたし本当にありがとう✨
後はビルドしてスマンホホにROM.zipとopengappsのpico.zipを焼く
ここでopengappsが焼けなかったら容量が足りないのでまた何か策を考えるしかない どうしようね
おわり
根本的な解決がしたいけれど、/systemパーティションを雑に拡大すると焼けなくなるんやでという話もフォーラムで見かけた気もしてわからないね
そんな石器時代のスマンホホを使うなといわれればそう🦆…