karubabuの日記

タイトルに解決と書いているものがあるけれど、別に付いていない物は解決していないというわけではないです。つまるところ記事を書いた後に解決してちょっと嬉しかったので付けました。

netctlを使っているPCの一つでipv6が振ってこなかった問題の対処

netctl ipv6 振ってこない - karubabuの日記
これです
結論からいうとよくわかんないのでdhcpcdをもう一度叩いて動かすという感じは変っていません

こうした

netctlはプロフィールに沿って接続した後に、/etc/netctl/interfaces/<ここにインターフェースの名前>スクリプトを実行する
このスクリプトを作成する時は末尾に.shとか付けたらいかんよ…(一敗) なので、ここでdhcpcd -qを実行するとどうしてかうまいこといく

こわいね

仮想コンソールのlogin画面を出すと謎の文字"^@"が自動で入力される 又はkeyrepeatが効かない keyrepeat does not work -xset 検索

カーネルにあるモジュール(?)がよしなにやってくれていなかったみたいな話でした
パッと見だとふつうにホラーだと思う
例によってグーグリング係数が低すぎて解決法を見つけられなかったのだけれど、おるみんさんの指摘でうまいこと問題を切り分けられた
95割くらいおるみんさんのお陰で解決したのでおるみんさんのブログを無限に見て

何がおきた

  • 10月頭くらいにyaorut -Syua --noconfirmして特に何も起きなかったのでrebootするとkeyrepeatが効かないことに気がつく
    この時はこわいね、霊障の現象でしょとか考えていた(再起動すれば直るでしょ(しない)とか思っていた)
  • その3日後くらいにkeyrepeatを設定し直してもkeyrepeatが効かないことに気がつく そして別のパヨヨンだと起きていないことにも気がつく
    この時もこわいね、日頃の行いが悪いかなくらいに考えていた
  • 更にその20日後くらいに、xevして何が起きているのか調べることを思いついて実行すると、keycode 221が一定間隔で押され続けていることに気がつく
    もちろん他のパヨヨンでは一定間隔で押されているログはなかった ストレージのせいかしら…とか考えていた(問題が起きているosが乗っかっているストレージがUSBメモリなので)
  • 問題のパヨヨン使用時にC-Sh-F2で仮想コンソールを出すと一定間隔で入力される"^@"という文字列が出現し、邪魔でログインできないことに気がつく
    このあたりで解決しないとなあという思いになる
  • ふと問題のパヨヨンでliveCDを起動するとliveCDにもかかわらずログイン画面で"^@"が出てきてハードウエアの故障かと死ぬ程焦る
  • パヨヨンに接続されているUSBデバイスや記憶領域を全て取り外しても問題が起きてなんもわからんになる

  • この旨をSNSに書いていると、おるみんさんが「別バージョンのカーネルを使っているlinuxで試しては」と言ってくれる

  • 試すと問題が生じない状態になる₍₍⁽⁽(ી( ‘ω’ )ʃ)₎₎⁾⁾
  • カーネルのモジュールが問題だということが分かったので、やっとぐぐって出るようになる

何をした

Bug 1497861 – Kernel module peaq_wmi nul bombing the console
問題としてはこれで、ここにあるパッチを当ててビルドすれば直る
これをやろうかな…と考えつつ適当に検索しているともっと楽そうな方法があったのでそっちをやった
keyboard - Key repeating doesn't work in 17.10 - Ask Ubuntu

おありに

楽な方楽な方に流れような👊

PCIe接続のNVMeなSSDを認識してくれないBIOS下で/bootのみをusbスティックに入れて起動する

今迄使っている/bootパーティションをUSBスティックにddして、他パーティションをNVMeSSDにddすれば出来る おわり

そういうSSDを貰いました
だけれど自分が今使っているパヨヨンでは物理的に接続できなかったのでできるお古のパヨヨンで使うことにしました
これによってお古のパヨヨンが使っていたHDDを別用途にしようという計画中に起きた出来事です
多分このタイトルで合っているとは思うけれど、 BIOSUEFIの違いやPCIe nvmeあたり単語の意味をあまり分かっていないので困ったらエスパーして

何がおきた

PCIe接続のNVMeSSDにHDDの中身をddで移し替えて起動しようとすると、ストレージが全く見つからないとBIOSに怒られる
よく分かっていないのでブート順が悪いのかしら…と思って設定画面を見ていると、そもそもSSDを見つけられていない
これはもうだめなのでは??と思っていると
GRUBlinuxカーネルはNVMeのドライバをしっかり持ってくれているので、GRUBを起動できれば良いらしく
ならGRUBだけをBIOSが認識できるデバイスに入れてそこからGRUBを起動、そして普通に起動という順番にすればいいのね ということになる そこで手元にあるUSBスティックに白羽の矢が立った

何をした

一行目をした
ddによるパーティションのクローンはarchwikiのサイコー記事を読んで
元々使用していた認識可能なデバイスが存在することが前提だけれど、まあ認識可能なデバイスがないとそのパソコンは動いていないだろうし
先にUSBスティックに一式をインストールしてからNVMeにクローンしていけば同じことができる

おわりに

そもそもarchLiveCDとusbスティックがあれば普通に出来ることなのだろうけれど、GRUBなんもわからん
ddってすごい、あらためてそう思いました(T生まれのTさん)

travis-ciでdocker内でcpp-coverallsを使う時によくわからなくなったやつ

2つかそこらある
そもそもtravis-ciもdockerもcpp-coverallsもなんも分からんしぐーぐりんぐ係数も低すぎるのでなんも見つけられなかった
困ったところを書いておこうね

cpp-coverallsを実行するとなんやかんや正常っぽいログが出た後にTracebackを吐いて落ちる

Traceback (most recent call last):
  File "/usr/bin/coveralls", line 11, in <module>
    load_entry_point('cpp-coveralls==0.4.0', 'console_scripts', 'coveralls')()
  File "/usr/lib/python2.7/site-packages/cpp_coveralls/__init__.py", line 97, in run
    cov_report = coverage.collect(args)
  File "/usr/lib/python2.7/site-packages/cpp_coveralls/coverage.py", line 463, in collect
    report['git'] = gitrepo.gitrepo(abs_root)
  File "/usr/lib/python2.7/site-packages/cpp_coveralls/gitrepo.py", line 32, in gitrepo
    if not repo.valid():
  File "/usr/lib/python2.7/site-packages/cpp_coveralls/gitrepo.py", line 61, in valid
    return self.git("log", "-1")[0] == 0
  File "/usr/lib/python2.7/site-packages/cpp_coveralls/gitrepo.py", line 72, in git
    cwd=self.cwd)
  File "/usr/lib64/python2.7/subprocess.py", line 390, in __init__
    errread, errwrite)
  File "/usr/lib64/python2.7/subprocess.py", line 1024, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

これはgit自体がインストールされていないのでgitを入れて
travisのログを見ているとdockerを構成する前からgit cloneでれぽじとりをクローンしているしいらんやろ!とか思っていました

fatal: Not a git repository (or any of the parent directories): .gitが出る

そもそもcpp-coverallsを実行するディレクトリが間違っている
docker exec $CONTAINER su - user sh -c "cd /srcdir && coveralls --exclude tools --exclude tests --gcov-options '\-lp' -t $COVERALLS_REPO_TOKEN"
とかやっておけばよさ

coveralls.ioのrepo_tokenってどうやって渡せばいいの

cpp-coverallsを使う☝️でcoveralls.ioに登録してrepo_tokenを貰ってそれを実行引数に入れる必要があるのだけれど、
このtokenは公開すんじゃねえぞ…って言われる
なのでtravisが用意してくれているstring encrypt機能を使ってうまいこと環境変数に入れて実行する

cd /srcdir
gem install travis
travis encrypt  COVERALLS_REPO_TOKEN="repo_token" --add

とかやると良い感じに.travis.ymlに書いてくれる

おわりに

ciってめちゃくちゃ便利ですごい、そうおもいました(T生まれのTさん)
おわり

fcitx-skk mode=readonlyした辞書が認識されない

他にもreadonlyにしてある辞書があるのに特定の辞書だけ認識されない場合はこの問題だと思う
mode=readonlyにしたいのなら辞書の並んでいる順番は色々大事らしいので適宜並べなおそうねということです

続きを読む

fcitx-skkをちょっと私色に染めた

karubabu.hateblo.jp
これを少し自分でやった
かなりえらいので褒めてよいよ

何をした

  • ペースト(コピペではない)が出来るようにした
  • abbrev状態でもエンターで確定できるようにした

github.com
ここにforkしたものがあるので使えるもんなら使ってみて

びるど

ビルドしてその後インストールされる流れが全くわかっていないので動いたので良しとする戦法です
良い方法があったら教えてほしさしかない
git clone https://github.com/karubabu/libskk
まけ、すどまけいんすたる
cp ./libskk/.libs/libskk.so /usr/lib/fcitx/libskk.so
までやれば後はfcitxを再起動すれば良い感じになると思う ならなかったら分からない