GNU/Linux

Android の Factory Image を Linux でマウントする

Google からダウンロードできる Nexus用 (もしくは Pixel用) のFactory Image は Linux でそのままマウントすることはできません. $ sudo mount system.img system mount: /home/kofu/Downloads/razorg-JLS36C/tmp: wrong fs type, bad option, bad superblock on /dev/loop6, missing codepage or helper program, or other error. これをマウントするためには, simg2img というコマンドを利用します. APT で入ります. $ sudo apt install simg2img $ simg2img system.img out.img $ sudo mount out.img system simg ってのは何かというと, img の空の領域を圧縮してサイズを小さくしたものらしい (simg2img の simg とは何か? (make_ext4fs コマンドなど)).

Surface GoにUbuntuをインストール

まずはじめに、Surface Go に Ubuntu をインストールするモチベーションは何かというと、 Surface Go を買ったときにとりあえず (とりあえずかどうかは議論が分かれるところですが) 入っている OS は当然ながら Windows 10 なわけですが、ずっと GNU/Linux の何らかのディストリビューションを使ってきた 僕としては Windows がどうしても使いにくかったということです。Surface Go は大きさとしては なかなかコンパクトで持ち運びしやすいのでこのサイズで OS が Windows じゃなかったら (婉曲?) 最高だなと思ったってのもあります。 まあそんなわけで (まとまらなかった) インストールの手順を書いこうと思います。 インストーラの USB をつくる ここが一番大変だったかもしれません。 自分の場

Ubuntu で freeglut を使う

環境は Ubuntu 18.04.3 LTS x86_64 です. 必要なパッケージを入れる $ sudo apt install freeglut3-dev 試す なんか適当に #include <stdlib.h> #include <GL/glut.h> #include <GL/gl.h> #include <GL/glu.h> static void display(void) { glClear(GL_COLOR_BUFFER_BIT); glFlush(); } int main(int argc, char **argv) { glutInit(&argc, argv); glutInitWindowSize(256,256); glutCreateWindow("Hello"); glClearColor(1, 0, 0, 1); glutDisplayFunc(display); glutMainLoop(); return 0; } 256x256 のウィンドウを赤く塗りつぶすだけです. で,コンパイル $ gcc main.c -lglut -lGLU -lGL -lm できました. 適当に Makefile にしておく ライブラリが多くて毎回指定するのは面倒なので, Makefile 必須っぽいです. LDFLAGS = -lglut -lGLU -GL -lm .PHONY: all all: main.o $(CC) main.o $(LDFLAGS) Man よこせ $ sudo apt install opengl-4-man-doc で入るみたいです.でも見た感じ, gl で始まる関数しかないっぽい. まあパッケージ名から想像がつくけど. glut とか glu とかの man の入手の仕方を教えてください. さいごに Windows でやる方がめんどくさいな,という印象ですね.まあ NuGet を使えば一発で入ることは入るんですが. でもあれはプロ

Raspberry Pi 2 で静的 IP を設定する

いつも忘れるのでメモ。 /etc/dhcpcd.conf に以下のように追記します。 interface <インタフェース名> static ip_address=192.0.2.2/24 static routers=192.0.2.1 static domain_name_servers=192.0.2.1 IP アドレスは例なのでこの通りではないと思います。 あと、挙動を見た感じだとサブネットマスクが /24 の場合は省略できるみたいです。 ルータに DNS 機能がない場合は 8.8.8.8 とか 4.4.4.4 とか 1.1.1.1 とかを設定すると動きます。 インタフェース名ですが、無線が wlan0 、有線が eth0 になっています。 ちなみに 192.0.2.0/24 は例示用として使っていいと RFC に書いてある。他にも 198.51.100.0/24 とか 203.0.113.0/24 とかもあるけどこれは割と最近予約されたものらしい。 かつては 128.66.0.0/16 が使われていたみたいだけどこれは今は予約されていないらしい。