明日にはでっかい太陽が昇るかもしれません。

「覚悟」とは!! 暗闇の荒野に!!進むべき道を切り開く事だッ!

Linux

initramfs を再構築する

Qemu 上での Kernel デバッグにおいて、 init が正常に動作しないという問題 (こちらは Qemu の UART デバイスに対する割り込み線の設定ミスだった) を調査するため、 initramfs をいじっていたので、 cpio の展開 / 再圧縮手順をまとめておく。 cpio の展開…

binutils がクロスコンパイルできない→とりあえずバックトレースにコードの行数を出せるようになりました

先日組んだバックトレースのコードを拡張して、ソースコードの行数を表示するために libbfd を組み込もうとした話。 #!/bin/bash export PATH=/path/to/buildroot/output/host/usr/bin:$PATH ./configure \ --build=$MACHTYPE \ --host=arm-buildroot-linux-…

Qemu を使いこなすために

組み込みを仕事にしているため、よく機材不足や新規基盤の開発遅れなどのトラブルが起きます。 そこで、Qemu を活用できればと思っていたところに良い記事が見つかったので写経してみました。 qiita.com ところが、ドライバの作成でコンパイルエラーが発生!…

ビルド環境の構築を行う

どんなツールを使うのか メインで利用するのは C 言語になるので、C 言語界隈の気になるツールを片っ端から導入し試してみる。 私は組み込み開発従事者なので、どうしてもGUIやIDEなどの派手なツールの利用は機会がありません。(大抵のプロジェクトで利用で…

ドキュメント系ツールを一斉に導入してみる

気になるところ ドキュメント系ツールについては、どの程度業務でも活用できそうなのか記になるので、早速環境を作成してみる。 pandoc のインストール pandoc は Haskell という(私には)あまり馴染みが無い言語で作成されているので、まずは Haskell の実…

Ubuntu 14.04.3 の環境準備を行う

Ubuntu のインストール Docker もインストールするつもりなので、 64bit 版であることは必須。 更に、GUIは要らないので、軽量化を重視して Server エディションをインストールしました。 とりあえず、言語は日本語で。(コンソールの表示は文字化けするけど…

ぼくのかんがえたさいきょうかいはつかんきょう

どういうこと? 期待する環境 MUST SHOULD MAYBE インストールしたいツール どういうこと? VMWare Player が 5.0 になったときに、ライセンスの解釈が変わったとかどうとかで、仕事の開発環境として VMWare Player が利用できなくなったとかいう話がありま…

clang+llvm のインストール

必要なパッケージのインストール build-essential 等の基本的なパッケージはインストール済みとします。 apt-get install -y libpython2.7 libpython2.7-dev swig libedit2 libedit-dev libncurses5-dev libxml2-dev インストールしたのは以下のパッケージで…

cmakeのインストール

すごく便利との評判はあるが、使い方がよくわからない cmake について、とりあえずインストールをしてみます。 まず、日々更新されているため、できるだけ新しい機能を使いたいので、パッケージではなく、公式から直接導入します。 curl -R -O http://www.cm…

コードの品質を自動的に評価するために 続編1

コードの品質を自動的に評価するために - 明日にはでっかい太陽が昇るかもしれません。 を書いてから、見つけた試してみたいツールをメモしておく。 terryyin/lizard · GitHub lizard というPythonで組まれた複雑度計測ツールらしい。 個人開発だが、比較的…

コードの品質を自動的に評価するために

コーディングにおける、現場の課題としては、おそらくここ数十年変わっていないと思うのですが、コードの品質をどのように担保するのかということになると思っています。 ここでいうコードの品質とは、動作上の確かさではなく、コード自体の保守性などのこと…

vim の初期設定

毎回調べるので、vim の初期設定についてのメモを残しておく。 NeoBundle のダウンロード mkdir -p ~/.vim/bundle git clone git://github.com/Shougo/neobundle.vim ~/.vim/bundle/neobundle.vim NeoBundle のインストール vim ~/.vimrc set nocompatible f…

Lua のビルド

クロスコンパイルも見越して、Luaのコンパイル環境を構築してみます。 コンソール入力ライブラリの導入 ncursesライブラリの導入 curl -R -O http://ftp.gnu.org/pub/gnu/ncurses/ncurses-5.9.tar.gz tar zxvf ncurses-5.9.tar.gz cd ncurses-5.9 LDFLAGS='-…

久しぶりの Docker

ここ半年は仕事がブラックすぎてプライベートプロジェクトが全然できていなかったので、そろそろ再開の準備をする。 まずは、 docker コマンドの使い方から復習する。 コンテナの作成 docker build --no-cache --rm -t kenz_san/<コンテナ名> <Dockerfileがあるディレクトリ> コンテナの起</dockerfileがあるディレクトリ>…

UTF-8な環境でEUC-JPなテキストを表示する方法

コンパイルなどを行う場合に、(なぜか)MakefileなどにEUC-JPな日本語が書かれている場合の対処法です。 この方法はnkfが必要です。 make | nkf -w -u

Ubuntuでのユーザ追加手順(最小権限)

Ubuntuサーバ上に開発ユーザを追加する必要があったので、手順をまとめておきます。 追加ユーザでしたいこと sshでのログインおよびsudo sambaでのファイル共有 すること ユーザの追加 今回は、既存ユーザでGUIにログインしてから追加したため、省略します。…

WindowsでLinuxのSleep関数を利用する方法

#ifdef _WIN32 #define sleep Sleep #endif でOK。

LinuxとWindowsでのコンパイルスイッチ

Windowsのみ有効にする場合 #ifdef _WIN32 #include <Windows.h.> #endif Linuxのみ有効にする場合 #ifdef __linux__ #include <linux.h> #endif</linux.h></windows.h.>