サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
画力アップ
yohgami.hateblo.jp
printk()はデバッグ出力無効化の際には、コメントアウトするなりして再ビルドする必要があります。 何度もビルドを繰り返すのは面倒なので、デバッグ出力の有効/無効を実行時に動的に切り替えられるようにする機能が dyndbg(dynamic debug)です。 なお以降の説明は、Linux 3.14.51で確認したものです。 また、debugfsのマウントポイントをで略記しています。 参考: debugfsのマウント方法 (マウントポイント /sys/kernel/debug の場合) sudo mount -t debugfs none /sys/kernel/debug カーネルコンフィギュレーションの変更 dyndbgを使用するには、カーネルコンフィギュレーションの変更が必要です。 まず、以下の場所にある「CONFIG_DYNAMIC_DEBUG」を有効化します。 Kernel ha
本記事は少し早いですがDebian/Ubuntu Advent Calendar 2017の12/12(火)向けに書いた記事です。Debian関係で最近やったことを記事にしてみます。 Linuxカーネルのブロックレイヤー向けドライバを動かしてみる時などに、Linuxカーネルごと別の環境が欲しくなります。複数台PCを持っていなかったりすると、仮想マシンとして立ち上げることを考えますが、実行速度を求めたい時など、仮想環境を直接PC上で実行したい時もあります。 本記事ではQEMU上でも実機上でも起動できるDebian環境をUSBフラッシュメモリへ構築する方法を紹介します。 といっても、結論から書くと単にQEMUを使用してUSBフラッシュメモリへインストールするだけです。ただし、UEFI向けにインストールする場合、少し変更が必要な箇所があります。 この記事ではQEMUを使用してUSBフラッシュメモ
本記事はDebian/Ubuntu Advent Calendar 2017の12/17(日)向けに書いてみた小ネタです。 Debian Jessieを今だに抜け出せず、使い続けているのもアレなのですが、Jessieでmake-kpkgで最近のLinuxカーネルをビルドしようとすると"missing REPORTING-BUGS"というエラーに陥るので、その対処方法について記事にしてみます。 はじめに なお、先に書いておくと、Stretchからはmake-kpkgは入っていません。Linuxカーネルのdebパッケージへのビルドは、MainlineのMakefileにも"deb-pkg"や"bindeb-pkg"といったターゲットが入っており、make-kpkgは必要なくなっています。 最近の方法でLinuxカーネルのdebパッケージ作成方法については、Debian公式のドキュメントに日本語
コンテナ型仮想化であるDockerは、様々な名前空間の分離やcgroupなどのLinuxの機能を使用して実現されています。 ここでは、簡易的に機能を「ルートディレクトリとPID名前空間も分離されている」と限定し、シェル上で7つのコマンドでコンテナを立ち上げてみます。 最終的な目標は、立ち上げたコンテナ上でpsを実行し、以下のようにPIDが1から割り振られていることを確認することです。 bash-4.3# ps PID TTY TIME CMD 1 pts/1 00:00:00 bash 7 pts/1 00:00:00 ps bash-4.3# 結論: 7つのコマンド 先に書いてしまうと、7つのコマンドは以下のとおりです。 まず、簡易コンテナの作成から、コンテナ内のbash起動まで。 $ mkdir test_container $ cd test_container $ cp -r /b
2週間ほど前にRaspberry Pi 2を買いました。 Raspberry Pi 3がつい先日リリースされ、買うやいなや時代遅れになった感じがしますが、 ちょこちょこと、いじってみています。 まずは、microSDにOSインストールということで、 NOOBSといったすごく便利なものも公開されていますが、 ここではRaspbian Jessie LiteのイメージからOS(もとい、ユーザーランド)を構築してみたので、 やった手順をメモしておきます。 1. Raspbian Jessie LiteをmicroSDにインストール 1.1. 以下から最新のイメージをダウンロード https://downloads.raspberrypi.org/raspbian_lite_latest 3/2現在、2016-02-26-raspbian-jessie-lite.zip が最新 1.2. 以下のペ
ftraceの使い方については、以下の記事でも紹介しましたが、 ftraceを試してみました - へにゃぺんて@日々勉強のまとめ 過去には紹介しなかった使い方も分かったので、あらためてまとめます。 過去に紹介したときは、 「関数単位でカーネルの実行状況のトレースログを出してくれる機能」 という紹介でしたが、実は他にも機能があります。 なお以降の説明は、Linux 3.14.51で確認したものです。 また、debugfsのマウントポイントをで略記しています。 参考: debugfsのマウント方法 (マウントポイント /sys/kernel/debug の場合) sudo mount -t debugfs none /sys/kernel/debug カーネルコンフィギュレーションの変更 ftraceを使用する際もカーネルコンフィギュレーションの変更が必要です。 Kernel hacking
ラズパイ3を買ってみました。 今回はベアメタルプログラミングで最も簡単な「何もしない無限ループ」のプログラムを作ってみるところまでを、 自分の経験のメモとしてまとめてみました。 なお、Raspberry Pi 3で64bitベアメタル(bare metal)プログラミングを試してみる 本シリーズの目次はコチラです。 0. はじめに ARMの64ビットCPUに触れてみようとRaspberry Pi 3を買ってみたのですが、 現状のRaspbianは32ビットのモードで動作するため(*1)、64ビットを試してみることができません。 LinuxなどのOS(というよりカーネル)を介さず、CPUが直接実行するコードを書く事を「ベアメタルプログラミング」と言うそう(*2)で、 64ビットCPUの勉強としてベアメタルプログラミングを試してみています。 (*1): Raspberry Pi 3に実装されて
今回は、Linuxのシグナルについて、自分なりにちゃんと調べてみましたので、 記事にまとめてみます。 ほとんどUNIXシグナルと変わらない話だとは思いますが、ソースコードは Linuxのものを参照しているので、Linuxに限った話も混じっているかと思いま す。 そもそも「シグナル」とは? 辞書を引いてみると、"signal"は signal 【他動】 〜に信号を送る、合図する、〜を信号で伝える 〜の前兆となる、〜を示す、示唆する、知らしめる文例 【名】 〔メッセージを伝えるための〕合図、信号、信号機 〔合図で伝える〕メッセージ、意図、警告 〔行動を起こす〕きっかけ、引き金 《電気》信号 【形】 信号の(働きをする) 際立った、目立つ、顕著な、目覚ましい、注目に値するとのことです。 signalの意味・用例|英辞郎 on the WEB:アルク http://eow.alc.co.jp/se
DebianではJesseからsystemdが決まっているなどで、 今さらではあるのだけど、Sysvinitで使用されているユーティリティの一つ 「startpar」の主に設定ファイルを調べて見ました。 startparとは ランレベルのスクリプトをパラレルに実行してくれる実行ファイル /sbin/startpar 設定ファイル「/etc/init.d/.depend.{boot,start,stop}」に、 /etc/init.d/以下のシェルスクリプトの依存関係を記述する startparは、設定ファイルに記述された依存関係にしたがって、 並列にシェルスクリプトを実行していく なお、それぞれのシェルスクリプト中の出力(echoなど)は、 バッファに貯められ、シェルスクリプトの実行終了時に書き出される なので、並列に実行していても、起動ログ上で出力が混ざることはない startparまで
「arecord」というコマンドを使うと、コマンドライン操作で、マイク入力の録音ができます。 使い方 amixerコマンドや、google-volume-controlなどで、マイク入力を有効にしたあと、以下の例の様にWAVファイルへ出力できます。 3秒間録音し、「out.wav」というファイルへ保存 $ arecord -d 3 out.wav 上記のやり方でもできますが、以下の様に条件を追加するとより高音質に録音できます。 $ arecord -t wav -f dat -d 3 out.wav 「-t wav」 ファイル形式に「WAV」を指定 「-f dat」 「-f S16_LE -c2 -r48000」の短縮形 16 bit little endian, 48000, stereo よく見る例では、 「-f cd」 としている例が多いけれども、 これは、「-f S16_LE -c
いきさつ これまで、Emacs 23.1を使用していましたが、JavaScriptを読むために「js2-mode」を入れようとしたら、 内部で使用している「prog-mode」というものが必要なようで、 Symbol's function definition is void: prog-mode と言われてしまいました。 Google Code Archive - Long-term storage for Google Code Project Hosting. こちらのページによると、「js2-mode」は「Emacs 24系」を要求しているようなので、 これを期に、Emacs 24系をインストールすることにしました。 事前準備 apt-getによるインストールでは23までしかありませんでしたので、 ソースコードをダウンロードしてビルドすることにしました。 一般的に、以下の手順で行い
ネタとしては古いですが、jslinuxについていろいろと調べていました。 JSLinux これは、QEMUの作者でもある Fabrice Bellard 氏が、JavaScriptで動作するPCエミュレータを作成し、その上でLinuxを動作させているものです。 こちらでは、Linux 2.6.20が動作しています。 今回は、最新のLinux 3.8.5をこのPCエミュレータ向けにビルドして動作させてみました。 作業場所の準備 前提として、ウェブサーバが動作しているものとします。 なお、ここでの説明では、ローカルにウェブサーバが動作していることを想定し、 作業ディレクトリ ~/jslinux/ URL http://localhost/jslinux/ のように、準備できているものとします。 jslinux動作環境の構築 JavaScriptだけで動くLinux、jslinuxを今さら使って
emacs上で動作する M-x tetrisや M-x pongなどのゲームは、「gamegrid.el」というゲーム用ライブラリで作られています。 今回は、この実験として、簡単な「迷路ゲーム」を作ってみました。 ソースコード ソースコードは、こちらからダウンロードしてください。 maze.el(12KB) ダウンロード場所はどこでも構いません。 ここでは、ホームディレクトリ直下に以下のように配置されているものとします。 ~/maze.el 遊び方 常用するメジャーモードでもないので、「.emacs」の編集などは必要ありません。 emacsを起動して、以下を実行してください。 M-x load-file [Enterを押す] Load file: ~/maze.el [Enterを押す] 以下を実行すると専用のバッファが開き、ゲームが始まります。 M-x maze [Enterを押す] こ
確認してみたら、Linuxカーネルのトレーサ「ftace」が使える状態になっていたので、ftraceを支援するコマンド「trace-cmd」もインストールして試してみました。 ◆ 2015/09/06 追記 ftraceの使い方について、以下の記事でまとめ直しました。 ftraceの使い方 - へにゃぺんて@日々勉強のまとめ 確認 まず、既にdebugfsがマウント済みであるか否かを確認します。 $ ls /sys/kernel/debug/ ここで、「そのような名前のファイルやディレクトリは無い」といった内容のエラーメッセージが表示された場合は、debugfsがマウントされていませんので、 $ sudo mount -t debugfs none /sys/kernel/debug のようにマウントします。 そして、以下の場所にあるファイルを確認してください。 /sys/kernel/d
Ubuntu10.04(Lucid)でLinux標準カーネルのバージョン2.6.37.1をインストールをしてみました。 以下は2/20の作業ログをまとめたものなのですが、今 The Linux Kernel Archives を確認してみたら最新の安定バージョンとして「2.6.37.2」が2/24にリリースされてますね。 2.6.37.2でも同様の方法でインストールできると思うので、UbuntuなどのDebian系をお使いの方はこれから説明する方法で試してみてはいかがでしょうか。 カーネルソースのダウンロードと配置 まず、カーネルソースを The Linux Kernel Archives からダウンロードして、/usr/src/ に配置します。 $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.1.tar.bz
Backlogのダッシュボードについては賛否両論あるようですね。 素直に言うと、 『使い難いな』 とはつねづね感じていました。 そんなわけで、少しでもこれを改善出来ればと、 emacsからBacklog APIを呼び出す方法を調べていました。 主にXML-RPCをEmacs Lispで扱う方法ですが、 xml-rpc.elを使ってBacklog APIを呼び出す方法をまとめときます。 ひとまず、 プロジェクト一覧取得 タスクにコメントの追加 ができるものを作ってみました。 ; -*- Emacs-Lisp -*- ; backlog-mode ;; (load-file "~/site-lisp/backlog.el") ;; (backlog-mode) (defconst SPACE_ID "ログイン時のIDを指定") (defconst XML_RPC_URL (format "ht
日頃、シェルの上で作業を行うことが多いので、 「コマンドラインで動作するTwitterクライアント」 を考えていました。 そんなところ、こちらの記事を発見し、 良いもの。悪いもの。: コマンドラインで動作するOAuth対応TwitterクライアントをPythonで作ってみた ここで紹介されている「tw.py」を参考に、少し拡張してみました。 #!/usr/bin/env python #-*- coding: utf-8 -*- import sys, os, pickle from oauthtwitter import * # http://twitter.com/oauth_clients から「OAuthクライアント」の登録を行ってください CONSUMER_KEY = "" CONSUMER_SECRET = "" # キーファイルを保存するパスを指定してください(この場所でなく
awesomeのバージョンが2系の場合、設定ファイルは ~/.awesomerc というファイルになります。 (最新のバージョン3系の場合は「~/.config/awesome/rc.lua」です。) 上部のバーにアプリケーション起動用のアイコンを追加する設定について書いてみます。 .awesomercの構成について man awesomerc にも書かれていることですが、 .awesomercは screen, rules, keys, mouse, menu という5つのセクションに分かれています。 細かいことはよく分かっていませんが、 どうやらそれぞれのセクションはこんなことを意味しているみたいです。 screen 画面の設定 上部のバーの設定など デュアルディスプレイの場合はこのセクションが複数になるようです rules ルールの設定・・(?) keys キーバインドの設定 キーの
最近、デスクトップで使ってるUbuntuにawesomeをインストールして使っているので、 その流れみたいなのを書いときます。 awesomeって? awesomeとはタイル型ウィンドウマネージャの一種です。 タイル型ウィンドウマネージャというのもまたウィンドウマネージャの一種なのですが、 そういったことも含めて、こちらのWikipediaの記事が詳しいです。 ウィンドウマネージャ - Wikipedia 簡単な説明としては、上記記事の グラフィカルユーザインタフェースのウィンドウシステムにおけるウィンドウの配置や外観を管理するシステムソフトウェア。 という1文がわかりやすいかと。 Ubuntuでのインストール 「Ubuntuでのインストール」となってますが、 APTを採用しているディストリビューションならどれでも同じだと思います。 $ sudo apt-get install aweso
このページを最初にブックマークしてみませんか?
『へにゃぺんて@日々勉強のまとめ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く