揮発性のメモ2

組込みLinux開発を通じて得た知識と通じずに得た知識をメモ書きしておく

Linux

connmanのリファレンスマニュアル

connman(8) — connman — Debian stretch — Debian Manpages connmanctl(1) — connman — Debian stretch — Debian Manpages connman.conf(5) — connman — Debian stretch — Debian Manpages connman-service.config(5) — connman — Debian stretch — Debian M…

connmanで無線LANをテザリング対象にする

~# connmanctl tether wifi on HOGEHOGE PIYOPIYO Wifi SSID set Wifi passphrase set Enabled tethering for wifi SSID HOGEHOGE キー PIYOPIYO

connmanで有線LANをテザリング対象にする

有線LANをテザリングしようとしてもエラーになる # connmanctl tether ethernet on Error enabling ethernet tethering: Not supported /etc/connman/main.conf を編集し、有線LANもテザリングできるようにする # リブートしてもテザリングを有効化するか Pe…

タイムゾーン設定

タイムゾーンは /etc/localtime で決まる # ls -l /etc/localtime lrwxrwxrwx 1 root root 30 Sep 21 17:45 /etc/localtime -> /usr/share/zoneinfo/Asia/Tokyo シンボリックリンクを直接書き換えてしまうか、デビアンっぽくコマンド使う # dpkg-reconfigure…

SSID一覧取得

端末からアクセスポイントの情報を調べるには? iwlistコマンド:ネットワーク管理の基本Tips - @IT iwlist wlan0 scan| perl -nle '/ESSID:"(.*)"/ && print $1' 近頃は nmcli というかっこいいコマンドがあるらしいけれど、network-managerパッケージにあ…

WSGIでpythonを動かすやつ

linux4.9, debian9.5, apache2.4, python3.5 WSGI Web Server Gateway Interface pythonを動かすために作られたFastCGIのパチモン。 拡張子は .wsgi にしておくとよい。 要求に応じて.wsgiファイルの中の application関数*1 が呼び出される。 デーモンモード…

apache2.4でCGIを動かすやつ

bashとかpythonとか普通じゃないやつで遊ぶ用 mod_cgid.so を有効にする コマンドで有効化する(21世紀なので、シンボリックリンクを手で書いたりしない) sudo a2enmod cgid よくある設定 Alias "/hoge" "/home/unko/project/hoge" <Directory "/home/unko/project/hoge"> # 拡張子.cgi をCGIとみ</directory>…

timespec の足し算引き算

#include <time.h> // clock_gettime #include <stdio.h> // printf struct timespec *timessub(const struct timespec *A, const struct timespec *B, struct timespec *C) { C->tv_sec = A->tv_sec - B->tv_sec; C->tv_nsec = A->tv_nsec - B->tv_nsec; if(C->tv_nsec<0){ C</stdio.h></time.h>…

flock

ファイルロックを使ったプロセス間での排他制御 // gcc -Wall -lpthread test_flock.c #include <fcntl.h> // O_CREAT #include <sys/file.h> // flock #include <stdio.h> // printf #include <unistd.h> // sleep int main() { int fd = open("/tmp/hoge", O_CREAT, 0600); printf("ロック\n"); flo</unistd.h></stdio.h></sys/file.h></fcntl.h>…

pthread_mutex_lock

Pスレッドのmutexを使ったプロセス間での排他制御 // gcc -Wall -lpthread test_mutex.c -lrt // 動かんときは rm /dev/shm/hoge #include <fcntl.h> // O_CREAT #include <stdio.h> // printf #include <unistd.h> // sleep #include <sys/mman.h> // mmap #include <stdlib.h> // exit #include <pthread.h> // pthread #</pthread.h></stdlib.h></sys/mman.h></unistd.h></stdio.h></fcntl.h>…

sem_init

共有メモリ上の名前なしセマフォを使ったプロセス間での排他制御 // gcc -Wall -lpthread test_seminit.c -lrt // 動かんときは rm /dev/shm/hoge #include <fcntl.h> // O_CREAT #include <semaphore.h> // sem_wait #include <stdio.h> // printf #include <unistd.h> // sleep #include <sys/mman.h> // mmap #i</sys/mman.h></unistd.h></stdio.h></semaphore.h></fcntl.h>…

sem_open

名前付きセマフォを使ったプロセス間での排他制御 // gcc -Wall -lpthread test_sem.c // 動かんときは rm /dev/shm/sem.unko #include <fcntl.h> // O_CREAT #include <semaphore.h> // sem_wait #include <stdio.h> // printf #include <unistd.h> // sleep int main() { // 1を指定するとバイナリセ</unistd.h></stdio.h></semaphore.h></fcntl.h>…

プロセス間での排他制御

生成 ロック アンロック 共有メモリ 備考 ファイルロック open flock(fd,LOCK_EX) flock(fd,LOCK_UN) 不要 他言語と連携可 600 名前付きセマフォ sem_open sem_wait sem_post 不要 -pthread 16 名前なしセマフォ sem_init sem_wait sem_post 必要 -pthread 1…

connman で無線LANの接続設定をする

BeagleBone Green Wirelessの初期設定 :: WASP株式会社 connmanctl command man page - connman | ManKier ConnMan - ArchWiki connmanctlコマンドでいったん接続してしまえば、設定が保存されて次から自動接続するようになる。 # connmanctl connmanctl> te…

connman 無線LAN接続設定ファイル

/var/lib/connman/wifi_112233445566_484f4745484f4745_managed_psk/ に保存される この長い名前は wifi_MACアドレス_SSID_managed_psk という構成settings と data という二つのファイルが保存される settings こんな感じ。 省略可能な項目はほぼないので、…

sudo: sudo を実行するには tty がなければいけません。すみません

sudo: sudo を実行するには tty がなければいけません。すみませんsudo: sorry, you must have a tty to run sudo - 揮発性のメモ

SoftEtherのバージョンを確認する

vpncmdで確認できる # ./vpncmd /? vpncmd command - SoftEther VPN Command Line Management Utility SoftEther VPN Command Line Management Utility (vpncmd command) Version 4.24 Build 9651 (English) Compiled 2017/10/23 01:52:32 by yagi at pc33 C…

DHCPサーバを探す

apt install dhcpingdhcping -s 255.255.255.255 -s サーバIPアドレス指定。 ブロードキャストアドレスを使えば広く探せる -r DHCPREQUEST を使う指定。 デフォルトなのでなくてもいい -v 情報出力。 なくてもモリモリ出るのでたぶん不要 dhcping でdhcp サ…

Debian ARM 略語対応表

unameで見た dpkgで見た 分類 gcc 概要 armv8l arm64 64bitのARM armv7l armhf Hard Float略してHF arm-linux-gnueabihf-gcc ハードウェアFPUがあるARMBBB, RPi2, RPi3*1 armv6l armel ARM EABI arm-linux-gnueabi-gcc ショボいARMRPi1*2 arm ARM Legacy ABI…

デバイス名、IPアドレス、ネットマスク のリストを出力する

$ ip -o a s| perl -nle 'if(/^\d+: (\w+)\s+inet ([\d\.]+)\/(\d+) /){ $e=join(".", unpack("C*",pack("N",0x100000000-(2**(32-$3)))));print "$1\t$2\t$e"}' lo 127.0.0.1 255.0.0.0 eth0 172.16.1.1 255.255.0.0 usb0 192.168.7.2 255.255.255.252

ネットマスクの /8 とか /16 とかの表記を 255.0.0.0 とか 255.255.0.0 とかに変換するbashスクリプト

あの 192.168.0.1/8 みたいなおしゃれな書き方を Classless Inter-Domain Routing(CIDR:サイダー) と呼ぶらしい。 IPアドレスとサブネットマスクをまとめて表記する:Tech TIPS - @IT #!/bin/bash A=$1 C=$(( 2**(32-$A)-1 )) D=$(( 0xFFFFFFFF^$C )) E1…

リバースプロキシの設定その2

リバースプロキシの設定 - 揮発性のメモの続き転送する際、HTTP_HOST は書き換えられてしまう ProxyPreserveHost On ProxyPass /hoge http://172.16.101.51/piyo ProxyPassReverse /hoge http://172.16.101.51/piyo ProxyPreserveHost を有効にすれば、HTTP_…

LVMのディスクのサイズを変更する

CentOS6.9で 普通にインストールすると 論理ボリュームを / と /home で分けられるが サイズが適当なので、 / を小さくしたい。 マウントしっぱなしだと、大きくできるけど小さくはできないので、レスキューディスクから作業する。 # lvdisplay vg_VolGroup0…

systemd で適当なシグナルを送る

systemctl kill -s SIGUSR1 hogehoge kill -s シグナル名 でシグナルを送信し放題。

192.168.0.1〜192.168.0.254 までpingを打って結果の一覧を作る

echo -e 192.168.0.{1..254}\\n \ | xargs -IXXX -P30 bash -c 'ping -c1 -w1 XXX >&/dev/null; echo XXX $?' \ | sort -V > ping.txt for文で回すと1件ずつしか動かせないので、xargsで30件ずつくらい並行処理する。 並列処理すると当然結果はばらばらにな…

Windows Subsystem for Linux でルート権限になってみよう!

sudo su - を使う。パスワードは一般権限のでよい。 rootのパスワードは知る必要がない

Windows Subsystem for Linux を起動してみよう!

The WSL optional component is not enabled. Please enable it and try again. See https://aka.ms/wslinstall for details. Error: 0x8007007e Press any key to continue...

ディレクトリの中身をコピーする

× cp -a hoge/* piyo/ ○ cp -a hoge/. piyo/ *を使うと一旦展開されるのがダサいし、そもそもとして隠しファイルがコピーされないのはマズい。

BBB 復旧手順

BeagleBone Blackのシステムを復旧しよう | マルツセレクト BBB_eMMC_flasher_debian - Tech Info https://debian.beagleboard.org/images/ https://debian.beagleboard.org/images/BBB-eMMC-flasher-debian-7.5-2014-05-14-2gb.img.xz このイメージをSDカー…

GPIOの入出力方向を変更する

GPIOを出力ポートに変更すると valueが0になる、つまり 出力がLowになる。 電源はいって初期状態は入力方向で、入力はだいたいプルアップされててHighなので、プログラムが起動し出力方向を切り替えた瞬間に出力内容がLowに変わってしまうことになり 良くな…