05/23(日)鹿児島らぐの「鹿児島Linux勉強会 2021.05」に参加しました.
今回もオンライン(Discord)開催でした.
続きを読む
05/23(日)鹿児島らぐの「鹿児島Linux勉強会 2021.05」に参加しました.
今回もオンライン(Discord)開催でした.
続きを読む
2021-04-17(土)にオンラインで開催された,「Open Source unConference 2021 Online」に参加しました.
04/10(土)に小江戸らぐ 4月のオフな集まり(第225回)にオンライン参加しました.オンライン開催で,ツールはZoomUsの利用でした.
鹿児島らぐ「鹿児島Linux勉強会 2021.03.1」にオンライン(Discord)に参加しました.
参加者は申込み10人,飛び入り1人,欠席1人で延べ人数は10人でした.
以下のような話題で盛り上がりました.
私は,「Twitter クライアント sayaka ちゃんを Linux でも」として最近3.5.0がリリースされたsayakaの紹介をしました.
次回もオンラインで 2021-04/25(日) の開催予定です.
2021-03-13(土)に開催された「小江戸らぐ 3月のオフな集まり(第224回)」に参加しました.
以下のような発表がありました.
私は,「arm64のNextcloudでもCollaboraOnline」というネタを発表しました.
https://files.matoken.org/index.php/s/KH5WC9HyyDS6pD9 (pdf)
https://files.matoken.org/index.php/s/ni2RZ3JtZAnWYED (sig)
ちなみに途中から裏山から参加しました.日が陰るとまだ肌寒いですね.
次回は2021-04-10(土)に開催予定です.
鹿児島Linux勉強会 2021.02は予定取り02/21(日)に開催されました.参加者は8人ほどでオンライン(Discord)で開催されました.
以下のような話題で盛り上がりました.
・スマートフォンをLinuxデスクトップのスピーカーに(してビデオ会議中に離席しても話に付いていけるようにする)
・GNU Radioの環境設定
・How to use Sourcetrail for kernel analysis
・はじめての980円ジャンクガラホ改造,UserLAndとUbuntu,ArchLinux
・摂氏と華氏をグラフにしてみた
私の発表は,「スマートフォンをLinuxデスクトップのスピーカーに(してビデオ会議中に離席しても話に付いていけるようにする) 」でした.ほぼ以下のblogの内容と同じです.
終了後Aroundのテストがてら雑談をしました.Linux版クライアントももうすぐとのことなので気になっています.🐧
次回は03/06(土)のオープンソースカンファレンス2021 Online/Spring 2日目内で開催です.
以下はchatに出てきたリンク集です
https://kagolug.connpass.com/event/203393/
http://167.86.112.42:19001/p/kagolug-2021.02
https://gitlab.com/matoken/kagolug-2021.02/-/blob/master/slide/slide.asciidoc
https://github.com/matoken/kagolug-2021.02/releases/tag/1
https://avatars.githubusercontent.com/u/582400?s=400&v=4
https://www.asus.com/jp/Networking/RT-AC59U/
https://www.sanwa.co.jp/seihin_joho/thunderguard/index.html#kiso
https://www.youtube.com/watch?v=PZh5hzibdsk&vl=ja
https://www.youtube.com/channel/UCGhudK3AIG152KrfURCSb2Q
https://www.youtube.com/watch?v=PZh5hzibdsk
https://youtu.be/DVY-O4QOoMI
https://youtu.be/B496P9AuuOY
https://twitter.com/ichiken_make
https://amzn.to/2Wv56Yb
https://github.com/alanbjohnston/CubeSatSim/wiki/CubeSat-Simulator-Lite
https://repository-images.githubusercontent.com/149884796/82b70f00-6f07-11e9-9e3e-61ed89d9cb02
https://fosdem.org/2021/
https://fosdem.org/2021/news/2021-02-11-videos-on-fosdem/
https://fosdem.org/2021/schedule/track/free_software_radio/
https://fosdem.org/2021/schedule/event/fsr_gnu_radio_on_embedded_using_buildroot/
https://techlog.kishiro.com/2018/12/linuxfriio.html
https://matoken.org/nextcloud_cat.cgi?https://files.matoken.org/index.php/s/MiRMKyWWbZyxkZG/download
https://garapon.tv/pr_201703pc-app/
http://akiba.jpn.org/?p=37910
http://foltia.com/ANILOC/
https://www.amazon.co.jp/PLEX-PX-W3U4-USB%25E6%258E%25A5%25E7%25B6%259A-%25E5%259C%25B0%25E4%25B8%258A%25E3%2583%2587%25E3%2582%25B8%25E3%2582%25BF%25E3%2583%25AB%25E3%2583%25BBBS%25E3%2583%25BBCS%25E5%25AF%25BE%25E5%25BF%259CTV%25E3%2583%2581%25E3%2583%25A5%25E3%2583%25BC%25E3%2583%258A%25E3%2583%25BC/dp/B01MR4SLB6/ref=sr_1_23?__mk_ja_JP=%25E3%2582%25AB%25E3%2582%25BF%25E3%2582%25AB%25E3%2583%258A&dchild=1&keywords=Linux&qid=1613889374&s=computers&sr=1-23
https://www.hikaritv.net/
https://tailscale.com/
https://www6.nhk.or.jp/anime/program/detail.html?i=montana
https://rnavi.ndl.go.jp/research_guide/entry/post-442.php
https://www.nhk.or.jp/archives/
https://www.sourcetrail.com/
https://www.sourcetrail.com/documentation/#AppImage
https://deskreen.com/
https://appinventor.mit.edu/
https://connpass.com/event/201059/
http://www.kernelvm.org/
https://meet.around.co/r/kagolug
https://kagolug.connpass.com/event/203393/presentation/
https://www.youtube.com/watch?v=xdgNNP8j4gY
https://www.youtube.com/channel/UCxNoKygeZIE1AwZ_NdUCkhQ
https://forms.gle/KALd9U7fKmE6TNjQ7
https://twitter.com/pyconjptv
https://tv.pycon.jp/
2021-02-13(土)に小江戸らぐ 2月のオフな集まり(第223回)に参加しました.開催はZoom.usを利用したオンライン開催で参加者は20人ほどでした.
次のような発表がありました.
次回の開催は03/13(土)でオンライン開催です.
以下はその時発表したスライドをhtmlで書き出したものです.
懐が寂しい&増設できないマシン(◞‸◟)
+--------+ +------------+ +---------------------+ | WebCam +------->+ USB HostPC | | USB ClientPC | | C270 | USB |------------+ +---------------------+ +--------+ | USB/IP |------>| USB/IP | +------------+ 1GbE +--+------------------| | +-->UVC/UAC | +-------+-------------| | +-->Video APP | +---------------------+
帯域がもったいない,エンコードするとずっと細い回線で高画質にできるよね
バックアップもほしい
スマートフォンを有線,ネットワーク経由でWebCamとして利用
「スマートフォンをLinuxPCのウェブカメラとして使う Iriun Webcam」 小江戸らぐ 2020-04で発表
このときはDroidCamは専用kernel moduleが必要でめんどくさそうなので標準moduleが利用できるIriun Webcamを選択
それから約10ヶ月
sourceを入手してインストールスクリプトを実行する(※amd64以外は要セルフビルド)
$ git clone https://github.com/dev47apps/droidcam/
$ cd droidcam
$ sudo ./install-client (1)
$ sudo ./install-dkms (2)
$ sudo ./install-video (3)
$ sudo ./install-sound (4)
/opt/droidcam-uninstall
)導入$ cat /etc/modules-load.d/v4l2loopback.conf
v4l2loopback (1)
$ cat /etc/modprobe.d/v4l2loopback.conf
options v4l2loopback exclusive_caps=1 video_nr=6,7,8 card_label="Virtual Camera,v4l2loopback-7,v4l2loopback-8" (2)
$ cat /etc/modules-load.d/droidcam.conf (1)
videodev
v4l2loopback_dc
$ cat /etc/modprobe.d/droidcam.conf (2)
options v4l2loopback_dc width=1920 height=1080 video_nr=9 card_label="DroidCam"
ビデオデバイス番号はv4l2loopbackより大きくするとOBS利用時にはまらない
$ sudo modprobe -v v4l2loopback
insmod /lib/modules/5.10.0-3-amd64/updates/dkms/v4l2loopback.ko exclusive_caps=1 video_nr=6,7,8 card_label="Virtual Camera,v4l2loopback-7,v4l2loopback-8"
modprobe: ERROR: could not insert 'v4l2loopback': Operation not permitted
$ droidcam
$ droidcam-cli
Usage:
droidcam-cli -l <port>
Listen on 'port' for connections (video only)
droidcam-cli [options] <ip> <port>
Connect via ip
droidcam-cli [options] adb <port>
Connect via adb to Android device
droidcam-cli [options] ios <port>
Connect via usbmuxd to iDevice
Options:
-a Enable Audio
-v Enable Video
(only -v by default)
-size=WxH Specify video size (when using the regular v4l2loopback module)
Ex: 640x480, 1280x720, 1920x1080
Enter '?' for list of commands while streaming.
snd_aloop
moduleとPulseAudioを紐付ける$ pacmd load-module module-alsa-source device=hw:Loopback,1,1 \ source_properties=device.description=droidcam_audio
+--------+ +------------+ +------------+ |Android +------->+ DdoidCam +---------------->+ Video APP | |DroidCam| WiFi +---+--------+ v4l2loopback +------------+ +-----+--+ USB | snd_aloop | Zoom.us | ^ | | Discord | +---------------+ | Jitsi Meet | Camera Coltrole | : | +------------+
+------------+ +------------+ +------------+ |Android +------->+ OBS Studio +------------------>+ Video APP | |DroidCam OBS| WiFi |------------+ v4l2loopback +------------+ +------------+ USB | text | snd_aloop | Zoom.us | | Picture | | Discord | | Video | | Jitsi Meet | | Desktop | | : | | Camera | +------------+ | <Filters> | +------------+
参加人数は申込者9人で実際の参加者は7人でした.地域は鹿児島県が3人,その他4人(東京都,静岡県,岐阜県,愛知県x2)オンラインになってからの鹿児島の参加人数が一番多かった気がします.
以下のような話題で盛り上がりました.
この中で私の発表は,「ArchiveBoxで自分用WebArchive(django版)」でした.鹿児島Linux勉強会2019.08(オンライン)での発表の続報でした.不具合が減っていろいろと機能も増えていい感じです.リモートで試せるようデモサーバをRaspberry Piで起動して触って貰ったりしました.
次回は08/23(日)の開催予定です.
2020-07-23低レベル勉強会に参加しました.Zoom.usでの開催でした.
内容はLinux名刺的なものを開発しようという内容で,リファレンスとしてSDカードサイズの小さなLinuxの動作するarmコンピュータのSipeed Lichee Nanoを使いました.
欲しい場合は1000円ちょいくらいからで入手できそうです.
Lichee Nanoを持っていない人はリモートで触れるようにしてあったので持っていない私も楽しめました.
このリモート開発の仕組みはLichee NanoとRaspberry PiをUSB経由のUARTで接続し,Raspberry PiでGNU screenを起動,ssh経由でGNU screenに繋いで操作という感じです.
GNU screenをGotty等にするとウェブブラウザで参加できてちょっと便利かもと思ったりも.(GoTTYは開発止まってるように見えるから別のもののほうがいいかもしれない)
Lichee Nanoで何かを動かしたい.armだけどarmhf動くのかな?とりあえずなにか転送して動かしてみようと.
とりあえずDebianのarmhfバイナリをuuencodeしてコピペで転送してみます.これが動けばDebianのパッケージ群が利用できるかもだけど…….
まずは簡単そうなfortuneを試します.
$ apt download -t armhf fortune-mod
$ unar fortune-mod_1.99.1-7+b1_armhf.deb
$ cd fortune-mod_1.99.1-7+b1_armhf
$ tar xf data.tar.xz
$ cd usr/games
Lichee Nanoはserialで接続されていて,Internetには繋がっていないのでバイナリファイルの転送にはuudecode/uuencodeを使いました.久々です.
手元のGNU sharutils 4.15.2のuudecodeにはbase64を使う -m, --base64
があるので良さそう.と思ったけどLichee Nanoの方はbusyboxのもので非対応でした.
$ gzip -c fortune | uuencode fortune.gz > fortune.gz.uu
$ cat fortune.gz.uu | xclip
# cat | uudecode #ここでクリップボードから貼り付け
# zcat fortune.gz > fortune
# rm fortune.gz
そして……
# ./fortune
-sh: ./fortune: not found
# ldd ./fortune
checking sub-depends for 'not found'
checking sub-depends for '/lib/libc.so.6'
/lib/ld-linux.so.3 (0xb6fa0000)
librecode.so.0 => not found (0x00000000)
libc.so.6 => /lib/libc.so.6 (0x00000000)
/lib/ld-linux.so.3 => /lib/ld-linux.so.3 (0x00000000)
これを動かすのはダイナミックリンクされているものを用意してあげないといけないのでストレージの容量的に難しいですね.
ここではgzipで圧縮しましたが,Lichee Nanoのbusyboxにxzがありました.gzipよりxzにしたほうが小さくなりますね.試してみるとこんな感じでした.$ xz -c fortune | uuencode fortune.xz > fortune.xz.uu
-rw-r--r-- 1 matoken matoken 22368 Jul 23 15:11 fortune #元ファイル
-rw-r--r-- 1 matoken matoken 30844 Jul 23 14:58 fortune.uu #uudecode
-rw-r--r-- 1 matoken matoken 14975 Jul 23 15:08 fortune.gz.uu #zip + uudecode
-rw-r--r-- 1 matoken matoken 13047 Jul 23 15:47 fortune.xz.uu #xz + uudecode
そういえばあまり有名ではないですがbasE91なんてものもあります.base64よりサイズが小さくなりますが導入からやらないといけないのでちょっと面倒.
Hello worldを試してみます.適当にプログラムを用意してスタティックリンクでコンパイルしてみます.
$ cat hello.c
#include <stdio.h>
int
main(void)
{
printf("Hello, world!\n");
return 0;
}
$ gcc -static ./hello.c
$ ./a.out
Hello, world!
$ ls -l a.out
-rwxr-xr-x 1 pi pi 571120 7月 23 16:18 a.out
でかい……
とりあえずでかいのはおいといてこれだとarm64なので動くはずがない.ということでクロスコンパイル環境を用意します.
今回試したホストはDebian sid amd64/Ubuntu 20.04 LTS arm64/Raspberry Pi OS arm64です.いずれも同じ手順でOKでした.
crossbuild-essential-<arch>
パッケージで各種アーキテクチャの環境が導入できるようです.
$ apt-cache search crossbuild-essential-
crossbuild-essential-amd64 - Informational list of cross-build-essential packages
crossbuild-essential-arm64 - Informational list of cross-build-essential packages
crossbuild-essential-armel - Informational list of cross-build-essential packages
crossbuild-essential-armhf - Informational list of cross-build-essential packages
crossbuild-essential-i386 - Informational list of cross-build-essential packages
crossbuild-essential-powerpc - Informational list of cross-build-essential packages
crossbuild-essential-ppc64el - Informational list of cross-build-essential packages
crossbuild-essential-s390x - Informational list of cross-build-essential packages
crossbuild-essential-mips - Informational list of cross-build-essential packages
crossbuild-essential-mips64 - Informational list of cross-build-essential packages
crossbuild-essential-mips64el - Informational list of cross-build-essential packages
crossbuild-essential-mips64r6 - Informational list of cross-build-essential packages
crossbuild-essential-mips64r6el - Informational list of cross-build-essential packages
crossbuild-essential-mipsel - Informational list of cross-build-essential packages
crossbuild-essential-mipsr6 - Informational list of cross-build-essential packages
crossbuild-essential-mipsr6el - Informational list of cross-build-essential packages
沢山あります.今回はarmlf/armhfの crossbuild-essential-armel
, crossbuild-essential-armhf
を導入しました.
$ sudo apt install crossbuild-essential-armel crossbuild-essential-armhf
gccだけでいい場合はarmlfは gcc-arm-linux-gnueabi
,armhfは gcc-arm-linux-gnueabihf
だけでOKです.
まずは arm-linux-gnueabihf-gcc
を使ってarmhfのバイナリを作ります.
$ /usr/bin/arm-linux-gnueabihf-gcc -static ./hello.c
$ strip a.out
$ xz -c a.out | uuencode a.out.xz > a.out.xz.uu
armhfは駄目そうです.
# cat | uudecode
^d
# xzcat ./a.out.xz > ./a.out
# chmod +x ./a.out
# ./a.out
Segmentation fault
次は gcc-arm-linux-gnueabi
でarmlfのバイナリを作って試すと動きました.
$ /usr/bin/arm-linux-gnueabi-gcc -static ./hello.c
$ strip a.out
$ xz -c a.out | uuencode a.out.xz > a.out.xz.uu
# cat | uudecode
^d
# xzcat ./a.out.xz > ./a.out
# chmod +x ./a.out
# ./a.out
Hello, world!
# /usr/bin/time -f "%M KB" ./a.out
Hello, world!
2144 KB
この辺りで今回は時間切れ.次回の同じような感じになりそうです.興味のある方は以下のページから.
とりあえずarmelのバイナリが動くようなのがわかったので面白そうな小さなプログラムを試そうかなと思っています.cowsayとか好きなんだけどこれはPerlなので容量的に難しそう.とりあえずfortuneあたりかな?
以前PQI Air PenでやったようにSD cardを用意してそこにDebian armlf環境を展開してchrootとかもできそうです.
2020-06-28(sun)に開催された「鹿児島Linux勉強会 2020.06」に参加しました.
今回もDiscordで開催.主に音声チャットでやり取りで発表は画面共有で行う感じです.参加者は6名(申し込み7人欠席2人飛び入り1人)でした.
以下のような話がありました.
私は先月の「YoutubeLiveを細い回線で「聴く」」の続きをと思ったのですが,スライドのアクセスがとても少なく(たぶん自分を除くと一桁)反応良くなさそうだったのと,Twitterでrsyncの新機能への反応が良かったように見えたので「rsync 3.2.0の新機能を試してみた」と,参加者少なさそうだったので急遽「cowsayのcowを増やそう」を用意しました.
まあどちらもいまいち刺さらなかったかな…….
次回は07/26(日)でオンライン開催の予定です.