linux

PCMのデータを自分でいじってデジタルオーディオを理解する

私はいままで音を扱ったことはなかったので、PCMのことは聞いたことがあるという程度でした。仕事でオーディオのデバイスドライバを触ることになったので、その前提知識としてPCMのことを調べていたのですが、実際にいろいろといじってみたらとてもよく理解…

Ubuntu 14.04でcdebootstrapを使う

岩松さんの発表スライドを見て、cdebootstrap というものを知りました。 Raspberry Pi 2 Model BにDebian Jessie /armhfをインストールする (PDF)Ubuntu 14.04 でこれを使おうとしてのですが、うまくいきません。 $ sudo cdebootstrap --foreign --arch armh…

Go言語のARMのsoft floatのトリッキーな実装

kernel/VM Night! で発表してきました。 Tricky implementation of Go ARM soft float from Tetsuyuki Kobayashi スライドは発表時から少し追記しています。この日のライブ配信も担当しました。発表よりも実はそっちの方が大変でした。LiveWedgeというビデオ…

"Non-temporal" あえてキャッシュに入れない

8/29に開催されたカーネル読書会でARM 64bitの話をしてきました。同じスライドで話すのは3回目なのですが質問が多くでて今回が最も盛り上がりました。 (撮影:@hyoshiok さん) ARM 64bit has come! from Tetsuyuki Kobayashi 特にキャッシュの操作に関しての…

makeのときにCPU個数を自動で調べて-jオプションのジョブ数に指定する簡単な方法

makeコマンドで並列に処理するには、-jオプションでジョブ数を指定します。 $ make -j4 ジョブの個数にはビルドするホストのCPUの個数を指定したいので、スクリプトの中で定数で書いてしまうのはかっこ悪いです。(特に他の人に渡すようなビルドスクリプトで…

Dockerをソースからビルドしてみた

昨日に続いてDockerの話。Dockerに関しては驚くことばかりです。検索するとほぼ一年前に盛り上がっていたようですね。周回遅れです。DockerはGo言語で書かれていてソースコードがGithubで公開されています。 GitHub - moby/moby: Moby Project - a collabora…

Dockerでダウンロードしたファイルはどこに置かれるのか

昨日に続いてDockerをさわってみた話です。docker run ... で自動的にルートファイルシステムがダウンロードされますが、それらのファイルはいったいどこに置かれたのでしょうか? カレントディレクトリには何も新しいファイルはできていません。ダウンロー…

遅ればせならDockerを試してみた

先日のLinuxCon Japanでも話題になっていたDockerを遅ればせなら試してみた。 拍子抜けするほど簡単だった。誰かが用意してくれたものを使うだけなら。 Ubuntu 14.04 でのDockerのインストール $ sudo apt-get install docker.io これだけ。 busyboxの小さな…

LinuxCon Japan 2014に参加しました

2014年5月20-22日にホテル椿山荘で開催されたLinuxCon Japan 2014に参加しました。LinuxCon Japan 2014 day 1 #linuxcon - Togetter LinuxCon Japan 2014 day 2 #linuxcon - Togetter LinuxCon Japan 2014 day 3 #linuxcon - Togetter今年はTizenやYoctoのト…

ARM Linuxカーネルの中でNEONのSIMD命令を使用する方法

Linuxカーネルの中ではFPUを使った浮動小数点演算を一切行いません。カーネルのコードの中でFPUにアクセスするのはFPUレジスタの退避、復帰だけです。 NEONのSIMD命令はFPUレジスタを使用します。そのため以前はカーネルの中ではNEONのSIMD命令を使用するこ…

LinuxCon Japanで話をしてきました

http://events.linuxfoundation.org/events/linuxcon-japanで話をしてきました。トラブルシューティングでログをたくさん出すと遅くなる。バッファリングするとクラッシュしたときに最後の瞬間のログが見られない。速度を遅くせずになおかつ最後のログを確実…

KVM上にDebianをインストールする

Ubuntu 12.04 LTS(x86_64) のKVMでDebian wheezy i386を動かしてみる インストール ネットインストール用のCDイメージをダウンロード。 $ wget http://cdimage.debian.org/cdimage/release/current/i386/iso-cd/debian-7.0.0-i386-netinst.iso 空のディスク…

QEMU 1.5.0-rc3をソースからビルドする

ソースを持ってくる 以下のところから、tarアーカイブを持ってきて展開するか、git cloneする。 http://wiki.qemu.org/Download $ git clone git://git.qemu-project.org/qemu.git qemu.git $ cd qemu.git $ git checkout -b work.v1.5.0 v1.5.0-rc3 pixman…

Ruby 2.0をソースからビルドする

Linux上でのネイティブビルド 環境は Ubuntu 12.04LTS (x86_64) $ wget ftp://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p195.tar.bz2 $ tar xf ruby-2.0.0-p195.tar.bz2 $ mkdir obj $ cd obj $ ../ruby-2.0.0-p195/configure $ make -j8 $ make test $ s…

gdbで標準ライブラリの中を探検する

Linuxの標準ライブラリの中の動きをデバッガで調べたいときには、デバッグ情報つきのライブラリを追加インストールし、パッケージのソースアーカイブを持ってきてその場所をデバッガのソース検索パスに追加すると便利です。Ubuntu 12.04 (x86_64)を使用して…

Yocto プロジェクトのビルドをしてみた

以下のページを参考にしました。 http://www.yoctoproject.org/docs/current/yocto-project-qs/yocto-project-qs.html http://www.ibm.com/developerworks/jp/linux/library/l-yocto-linux/ビルドマシンは Ubuntu 12.04 (x86_64) CPU: Intel Core i7 950 @3.…

パッチを投稿するときのgitコマンド

自分用のメモ。 $ git format-patch -s -3 --subject-prefix="PATCH v2" --cover-letter -o /tmp/patch001 -3 のところは送るパッチの数。 $ scripts/checkpatch.pl /tmp/patch001/00*.patch 0000-cover-letter.patch はエラーになるが気にしない。emacsで内…

Linux Foundation Collaboration Summit 2012でのTizenのトラック

Linux Foundation Collaboration Summit 2012でのTizenのトラックのスライドを見て。 - Togetter Linux Foundation Collaboration Summit 2012 でTizenのトラックがあった。発表資料が掲載されている。 https://events.linuxfoundation.org/events/collabora…

TCP socketではwriteの後すぐにcloseしてはいけない

TCP socketではwriteの後すぐにcloseしてはいけない - Togetter TCP socketではwriteの後すぐにcloseしてはいけない。 相手側に全てのデータが届いてからcloseする必要がある。 shutdown で書き込み側だけハーフクローズするとよい。 相手側がcloseしてから…

forkした子プロセスを後始末する簡単な方法

forkした子プロセスを後始末する簡単な方法 - Togetter signal(SIGCHLD, SIG_IGN); を呼んでおくと、子プロセスの後始末はカーネルがやってくれるので、ゾンビプロセスにならない。

Xvfbを使ってAndroidのemulatorを画面無しで立ち上げる

VPN経由でのsshなど遅い回線からリモートログインしているときにXのクライアントソフトを起動すると、その描画がボトルネックになって非常に遅くなることがあります。そんなとき、もし画面を捨ててしまってもよいならば、Xvfbという仮想フレームバッファのX…

git fetchしている時のvmstat

Androidのソースコードをrepo syncしている間、暇なのでvmstatで見てみました。 psコマンドでみると、git fetchが動作中です。 画面はこんな表示。 Receiving objects: 83% (19179/22951), 1.34 GiB | 3.11 MiB/s この時に、5秒間隔でvmstatを見てみると $ v…

Androidをビルドしているときのvmstat

Androidをビルドしているときのvmstatを見てみました。 $ make -j8 topで見ると、idleは0.2%ですからCPUはフル稼働状態です。 $ top top - 15:01:42 up 3 days, 21:16, 11 users, load average: 7.81, 5.58, 2.74 Tasks: 256 total, 8 running, 247 sleeping…

screenコマンドはリモートログインの親友

nohupコマンド: リモートログインでのビルドの友 - 組み込みの人。を書いたらはてぶでscreenというコマンドがあることを教えてもらいました。調べてみるとこのページが詳しいようです。 Let's use SCREEN!私が使っているUbuntu 9.04ではすでにインストールさ…

nohupコマンド: リモートログインでのビルドの友

外出中にちょっと時間があったのでノートPCから会社のLinuxにVPN経由でリモートログインしたとします。 長く時間のかかるビルド(例えばAndroidのフルビルドとか)を始めたけれど、時間がきたので席を立たなければならなくなりました。でも、ノートPCを閉じて…

Linuxでの0番地のmmapについて

Linux Kernel では、ユーザプロセスが 0 番地に mmap を実行することが可能なので、 http://trackback.blogsys.jp/livedoor/kmckk/1202810直接リンク先の本題とは関連しないけれど、Linuxでの0番地のmmapについて思い出したことがあるのでちょっとメモしてお…