karubabuの日記

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

archliunx USBデバイスが認識しない

起動したらそうなっていたし霊障の現象にちがいないよ
使うカーネルを変更することでgot kotonakiしました

なにがあった

ある日パヨヨンを起動すると、starting version xxxの後に
* iptables.serviseが起動に失敗する
* 全てのUSB接続の機器が認識しない
* モニタの解像度に合わせて画面解像度が切り替わらない
* grubとその前では問題がない
くらいの謎現象が発生する

どうした

続きを読む

Windows用のOpenSSHのセットアップ Connection reset なんで

Windows用のOpenSSHがあってこれを使おうと適用にやっていたらハマったところを書いておく
ディレクトリへの権限が足りていなくてどうのこうのみたいな話なのでそういうのが無い所に置くと簡単解決ということです

なにがおきた

大体この通りにセットアップして、適当なところから接続した場合
connection reset by ipみたいな感じのメッセージが出て止ってしまう
ssh user@host -v をして詳細を確認すると,、

debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
connection reset

で終了してしまう
適当にこの文章でググるとMTUだかがどうのと出てくるけれど、弄ってみても解決しない

そもそもこのexpecting SSH2~^~って何なのなの

MITM攻撃を察知するために、接続した今のホストのfingerprint(なんのフィンガープリントなんだろう)と
クライアント側で保存しておいた初回接続時のホストのfingerprintを比べている部分

この項目に失敗してssh接続を断念していそう?? 👉 ホスト側のfingerprintを示すファイルかなにかを見にいって失敗している??(よぐわがんないけどね)

どうした

今まではc:\program filesみたいな名前のディレクトリに入れていたけれど
OPENSSHのディレクトリを置く場所を変えて管理者権限がどうのの問題を回避した

おわり

program filesとかのディレクトリを管理者権限なしで楽に操作できるようにならないのかしら
方法を知っているヒトは教えてください…

参考

WindowsのOpenSSH – がとらぼ

SSHのプロトコルについてまとめてみた 第一弾 - Qiita

追記20171212: 日本語をちょっと直した。意味は変わっていないと思う

dvorak入門しましたメモ

しました
これもdvorak配列で書いています
困った所をメモしておこうね

なんで?

TLで話題になったので折角なので使ってみることにした 日本語入力だけ大儀になるならまあ兎も角だけれどvimとかソフトウエアのショートカットキーもガバるので大変みあって躊躇するよね

どうやった

dvorak settings · GitHub
必要な物はここに置いてある
xorgで設定する方法もあるらしいけれど、fcitxとの相性が悪いのか考えていた動きにならなかったのでxmodmapを使ってキーレイアウトを変更する
xmodmap .Xmodmap
するとdvorak配列になるので.Xmodmapファイルのバックアップやキー配列画像の用意を忘れないで

https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/KB_United_States_Dvorak.svg/900px-KB_United_States_Dvorak.svg.png

更にローマ字日本語入力の設定をする
DvorakJP - 日本語入力用拡張Dvorak
ここの手法1、2を使う
私はSKKを使っているのでこれらは nvim ~/.config/libskk/rules/default/rom-kana/default.jsonを編集する
この設定は本当にお勧めなのでやって

おわり

文章がかちこちになったし指もかちこちになった
今のところvimやvimiumを使う時はキー配列を直してしまっているので中途半端だけれどまあやってみていこうね👊

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さん)
おわり