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パーティションを雑に拡大すると焼けなくなるんやでという話もフォーラムで見かけた気もしてわからないね
そんな石器時代のスマンホホを使うなといわれればそう🦆…
gentoo上でfloのandroidカスタムROMをビルドした
特に困ったこともなくgentoo公式レポジトリの範囲でパッケージを追加してrepo syncしてbrunchしておわった
ありがたいー🙏
どうした
よく読む
LineageOS 15.1 のビルド方法 | dev:mordiford
Android ビルドで学ぶ git-repo 入門 | dev:mordiford
追加したパッケージ
☝️の記事を参考にして同じようなパッケージを投入すればいける
頑張ってぐぐって
これらは私がビルドのために追加したパッケージだよ
つまりこれだけ入れれば良い訳ではなく、ましてやこれらが本当に必要かどうかも分からないよ
sudo emerge -av =dev-libs/expat-2.2.5 =dev-java/lzma-9.18 =app-arch/lzma-9.20-r1 =app-arch/lzop-1.04 =sys-apps/texinfo-6.5 =sys-fs/squashfs-tools-4.3-r2 =sys-process/schedtool-1.3.0-r1 =media-gfx/pngcrush-1.8.13 =dev-java/maven-bin-3.3.9 =dev-libs/libxml2-2.9.8 =x11-libs/wxGTK-3.0.4-r300 =media-libs/libsdl-2.0.8-r2 =app-arch/lzip-1.20 =media-gfx/imagemagick-7.0.7.35
ncursesは5が必要かつtinfoのUSE flagを立てる必要があるよ
sudo flaggie --strict '=sys-libs/ncurses-5.9-r101:5' +tinfo sudo emerge '=sys-libs/ncurses-5.9-r101:5'
その他の環境
$ gcc-config -l [1] x86_64-pc-linux-gnu-5.4.0 [2] x86_64-pc-linux-gnu-7.3.0 *
$ eselect java-vm list Available Java Virtual Machines: [1] icedtea-bin-8 system-vm
repoはpython2系でないと動かないので,dev-python/virtualenv
をインストールしてrepo initしたディレクトリでよしなに使う
virtualenvの使い方はarchwikiがえらいよ
. build/envsetup.sh
の様なコマンドを逐一source build/envsetup.sh
に読み替えたりするのが面倒なのでzshを使っている人はbashにした方がよさそう
わたしはしました
あとはぱっとbrunch flo 2>&1 | tee lineage_$(date '+%Y%m%d_%H-%M-%S').log
して待つ
メモリがめがっさ持っていかれるので10Gくらいは余裕を持っていた方がよさげだった
私はswap無しのRAM12GBの環境でホイヤホクスで音楽を聞きながらデスコーヨでチャットしていたらピーク時にどちらもOOMKillerに殺されました…
おわりに
ほたしがえらい
無限に感謝しています
vimで最短マッチさせたい時の文わけわからん
$(DESTDIR)を${DESTDIR}に置換したかったのでぐぐりつつ書いていたらこうなった
s/\$(\(.\{-1,\}\))/\$\{\1\}/gc
多分また知りたくなるのでここにかいておきます