archlinux iphone USBデザリングについて
iphoneのUSBデザリングでちょいと詰まったので備忘録
参考
Arch Linux iPhone テザリング | Basic Werk
方法
install
iphoneのUSBデザリングでは下記Pkgが必要
$pacman -S usbmuxd libimobiledevice ifuse
反映
sudo idevicepair pair sudo ideviceinfo sudo ifuse /mnt
$ sudo idevicepair pair ERROR: Could not validate with device 00008020-001E69863E86002E because a passcode is set. Please enter the passcode on the device and retry.
上記エラーが出た場合はiphone側で認証
起動
$ dhcpcd $iphone
How to add a user to a group in linux
show group
# groups [user]
group create
# groupadd [group]
add user to group
# gpasswd -a [user] [group]
show users
$ cat /etc/passwd|sed -e 's/:.*//g'
reset groups
$ newgrp wireshark
awkで行頭のコメントを削除する。
ふとエディタがなにも使えない状況に陥り、どうしようと思ったのでメモ書き
awkあればいける!
↓先頭の#を消す。
[gen@arch-wsl] $ cat test.txt # test [gen@arch-wsl] $ awk '{ $a = substr($0, 1); sub(/^#/,"",$a); print $a }' test.txt test
rubyでTCPソケットを開いてデータのやりとりをしてみた
rubyにてtelnetやssh等をしているとTCPsocketクラスというものが目についた
ふと、ポートをlistenしてデータのやり取りもできるのだろうか?と気になったので試してみた
コード
require 'socket' serv = TCPServer.open("localhost", 0) c = TCPSocket.new(*serv.addr.values_at(3,1)) s = serv.accept c.puts "fooooooooo!!" c.puts "fooooooooo!!" p "server: #{s.gets}" p "server: #{s.gets}" s.puts "booooooooo!!" s.puts "booooooooo!!" p "client: #{c.gets}" p "client: #{c.gets}"
TCPServer.openでの引数は(開く先、ポート番号)という形となる
※""というように何も記述しなくてもlocalhostを掴むようだがわかりやすく記述
ちなみに0番ポートはany portと呼ばれる動的なポート割当だ
0-1023の範囲のポート番号は、ウェルノウンポート番号と呼ばれている。0番のポートはエニーポート(any port)と呼ばれ、アプリケーションに対して、動的に別番号の空きポートを割り当てるために用意された特殊なポート番号である。別番号のポートの再割り当てを行わずに0番のポートとして使用することは禁止されているため、利用上では注意が必要である。
出力
"server: fooooooooo!!\n" "server: fooooooooo!!\n" "client: booooooooo!!\n" "client: booooooooo!!\n"
できた、TCPソケット通信とても面白い
Archlinux on WSL
はじめに
windows環境に嘆き、WSL(Windows Subsystem for Linux)でubuntuを使ってても満たされない毎日を過ごしておりましたが、友人より「ArchLinuxがWSLで使えるって」との情報が・・・
涙が溢れ、早速導入しようと考えたときにはもうArchを入れてました. 今回は同じようにArchlinuxを導入したい人のために簡潔ですが導入方法をまとめようと思います。
2019/12/12 wsl2への変換項目をいれますた
参考
↑ほぼほぼ上記wikiを見ていただければ導入できると思います。本記事の内容ではいくつか補足は入ってますがおおよそ同じです。
ちなみに有志の方がgithubに簡単に導入できるexeファイルを配布してるので、自分でインストールをするのがめんどくさい人は使うのをおすすめします。
ストアにArchはありません
早速導入と行きたいところですが、通常WSLでLinuxを入れる際は大抵Windows storeから落としてるかと思います。 ですが、Archに関しては少し違います。
Archは正式にstoreから配布されるのではなく、ubuntuのLinuxカーネル部分をベースにArchへ書き換えています。 イメージしづらい方は下記記事を見ると少しイメージが湧くかもしれません
完結にいうとubuntu上の「bin, etc, lib, lib64, sbin, usr, var」をArchのものに書き換えます。
WSL機能の有効化
まずはこれを有効化します。 windows10よりサービスが開始したWSLですがデフォルトは有効化されていません。
まずは有効化しましょう。
コントロールパネル起動方法
- winキー+ R を押し、ファイル名を指定して実行を開く
- 「contorol」と入力してenter
下記画面が出ますので「プログラムと機能を選択」
次に「windows機能の有効化または無効化」を選択
最後に「Windows Subsystem for Linux」にチェックをつけたら完了 再起動したら有効化されています
storeからubuntuをダウンロード
windows storeにて「ubuntu」と検索し、ダウンロードしてください
versionは何でもいいですが、筆者は18.04で導入したため、18.04をおすすめします。 ※ダウンロードしたら自動でインストールが始まります。
ubuntuのインストールが完了したら、コマンドプロンプト(Powershellでも可)にて下記コマンドを入力してデフォルトユーザーをrootにしておきましょう。(操作が楽です)
ubuntu1804.exe config --default-user root
※versionが違う場合、コマンドに差分があるので注意
ArchLinuxをダウンロード
次にArchLinuxをダウンロードします。
ファイルはダウンロードページからダウンロードできます。 よくわからない人は下記URLからダウンロードしてください。
ダウンロードしたらubuntu上で下記コマンドを使用し解凍してください
※スタートアップからubuntuを起動できます。
# tar -zxvf /mnt/c/Users/username/Downloads/archlinux-bootstrap-2019.02.01-x86_64.tar.gz ※ファイル名はversionによって差異あり
解凍が完了したら「root.x86_64」というディレクトリができてると思います。 こちらがArchLinuxが入っているものとなります。
Arch設定ファイル調整
mirrorlist有効化
ミラーリストについては下記参照
どのサーバーからパッケージをダウンロードするのか選べるリストです。
~/root.x86_64/etc/pacman.d/mirrorlist 内の使用するサーバーをアンコメントします。
※ここでアンコメントしないとあとで辛くなるので忘れずに!!
resolv.conf自動生成
WSL で /etc/resolv.conf を自動生成します。
$ echo "# This file was automatically generated by WSL. To stop automatic generation of this file, remove this line." > ~/root.x86_64/etc/resolv.conf
生成したらubuntuはすべて閉じてください。。
ubuntuファイル書き換え
Windows エクスプローラで %localappdata%\Packages を開いて 「CanonicalGroupLimited.UbuntuonWindows_* 」
という名前のフォルダを探してください (アスタリスクはランダムな文字列になります)。
次に%localappdata%\Packages\CanonicalGroupLimited.UbuntuonWindows_*\LocalState\rootfs にある bin, etc, lib, lib64, sbin, usr, var を削除してください。
そして上記と同じフォルダを rootfs\root\root.x86_64 から rootfs に移動してください (コピーでは駄目です)。
Archの起動
再度ubuntuを起動すると、すでにArchに変わっています。
Archの調整として下記コマンドを入力してください
# pacman-key --init # pacman-key --populate archlinux # pacman -Syyu base base-devel
最後にコマンドプロンプト上でデフォルトユーザを戻しましょう
ubuntu1804.exe config --default-user [username]
これでArchの導入完了です。お疲れ様でした。
※ABSを使う場合はまだ続きます!!
ABS(Arch Build System)の導入
WSLはまだ未実装の部分があり、その影響でABSで使用するfakerootが正常に動作しません。
※AURのパッケージのインストールができない!!
※System V IPC が完全に実装されるまで必要です (こちら を参照)。WSL のバグが修正されればこの手順は不要になります。
そのため、ABSを導入するにはfakeroot-tcpのインストールが必要不可欠となります。
ですが、上記パッケージのインストールもABSもしくは別Linuxでのビルドが必要です。
念の為、ビルドできないかた用にgithubにビルドしたものを上げてあります。
ご自由にダウンロードしてください。
https://github.com/Gen-Arch/fakeroot-tcp/archive/master.zip
ダウンロードしたら下記コマンドにてインストールが可能です。
# pacman -U /mnt/c/Users/username/Downloads/fakeroot-tcp/fakeroot-tcp-1.21-2-x86_64.pkg.tar.xz
あとはyayなどAURヘルパーを導入すれば快適なArch生活の始まりです!!
2019/12/12修正 バグ治ったみたいなので不要です。
wsl2について
wsl2がリリースされましたね。 上記でインストールしたものを変換できるので追記します。
※name適宜置き換えて
PS C:\Users\ymdts> wsl -l -v NAME STATE VERSION Ubuntu Running 1 PS C:\Users\ymdts> wsl --set-version Ubuntu 2 変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください 変換が完了しました。 PS C:\Users\ymdts> wsl -l -v NAME STATE VERSION Ubuntu Running 2 PS C:\Users\ymdts>
これだけ、下記にも記載あり。
systemdについて
今だsystemdたちあがらず・・・ 頑張って調べてます・・・