dev
今まで curlは使ってなかったけど vimとの連携が快適なのに気づいたので もっと使っていこう、 という気運が、勝手に高まっている。 カイシャからは hatena.vimも vimtwitter.vimも proxyオプションの -x 使ってみたけど うまくいかなかった>< こーゆーと…
vimから twitterに書き込みvimスクリプト、ありますねー。 いいっすねー。 ダウンロード http://www.vim.org/scripts/script.php?script_id=2124 最新のスクリプトを取得しました。 script version : 5.0 date : 2008-03-28 Vim version : 7.0 基本設定 runt…
4月20日のエントリー hatena.vim導入しよう (1) - kei-os2007 against the machine!! で、うまくいかない、って書いていた hatena.vimの件だけど 今日やってみて、うまくいった。 hatena.vimのバージョンとか うまくいかない状況を、もっときちんと記してお…
サーバに無駄なアクセスをしない、という zsh連番生成をワンライナで書けない悔しさもあるし 車輪を再発明してるかもしれないけど スクリプト(っていっても、ただのコマンドの羅列)にしました。 #!/bin/zsh CHANGELOG_2_6="http://www.kernel.org/pub/linu…
コンパイルが通るはずが通らないときに いちいち調べるのもめんどいなぁ、と思って ChangeLogの形式が決まってるんだから 収集しておいて、自分でインデクシングしてトレースしてけばいい? って思ったので、Linuxカーネルの ChangeLogを 全部取り込むことに…
http://www.kernel.org/pub/linux/kernel/
Linuxカーネル 2.6.0 の tty_structには、flipメンバがあった。 やっぱ最近消えたのかなぁ...。 I found flip member in tty_struct (tty.h) in Linux kernel 2.6.0 source codes. Was flip member deleted recently...??
we can obtain "Linux Device Drivers, Third Edition" in PDF format, for free. http://www.oreilly.com/catalog/linuxdrive3/book/index.csp 英語ですが、オライリーのサイトで Linuxデバイスドライバ 第3版を PDFで入手できます。
while executing tty-open method, I encountered a kernel BUG message. This message seems to be reported in BUG_ON() in add_timer() function. I should learn about Linux's timer mechanism. If I could not resolve this problem, I would write ab…
Linuxデバイスドライバ 第3版の TTYドライバサンプルをコンパイルすると tty_struct構造体の flipってメンバはないよ、っておこられる。 TTYドライバ側からユーザ空間にデータをコピーするために使う ピンポンバッファのようなのだけど。 Linuxカーネル 2.6.…
シンボリックリンクになっていて カーネルソースのディレクトリを指している。 Makefileをワンライナにするなら obj-m := hoge_module.o とだけ書いておいて $ make -C /lib/modules/`uname -r`/build M=`pwd` modules を実行すればよい。
で定義されている。 struct semaphore型の変数を操作する。 セマフォを初期化する void sema_init(struct semaphore *sem, int val); val : セマフォに割り当てる初期値 セマフォを取得する セマフォを取得する関数は、3種類ある。 void down(struct semapho…
で定義されている関数を使う。 unsigned long copy_to_user(void __user *to, const void *from, unsigned long count); unsigned long copy_from_user(void *to, const void __user *from, unsigned long count);
ssize_t read(struct file *filp, char __user *buff, size_t count, loff_t *offp); ssize_t write(struct file *filp, const char __user *buff, size_t count, loff_t *offp); ・引数 filp : ファイルポインタ buff : 書き込むデータを保持しているユーザ…
void tty_register_device(struct tty_driver *driver, unsigned index, struct device *dev); driverには、登録した ttyドライバのポインタ変数を使う。 index は、デバイスのマイナー番号。 devは、このデバイスが関連づけられる struct deviceへのポイン…
次の関数を使って、ttyドライバを ttyコアに登録する。 int tty_register_driver(struct tty_driver *driver);
ttyドライバを操作する関数ポインタの構造体。 struct tty_operations { int (*open)(struct tty_struct * tty, struct file * filp); void (*close)(struct tty_struct * tty, struct file * filp); int (*write)(struct tty_struct * tty, const unsigned …
次の関数を使って、tty_driverを作成する。 struct tty_driver *alloc_tty_driver(int lines); 引数linesには、このドライバがサポートする ttyデバイス数を指定する。 作成に失敗したら、NULLが返るのでエラー処理すること。
を使う。 このヘッダファイルで定義されている struct tty_driverがメインの構造体。
root権限でアクセスできるファイル /proc/tty/driver/serial を見る。 # cat /proc/tty/driver/serial serinfo:1.0 driver revision: 0: uart:16550A port:000003F8 irq:4 tx:0 rx:0 1: uart:16550A port:000002F8 irq:3 tx:0 rx:0 CTS|DSR 2: uart:unknown …
$ cat /proc/tty/drivers /dev/tty /dev/tty 5 0 system:/dev/tty /dev/console /dev/console 5 1 system:console /dev/ptmx /dev/ptmx 5 2 system /dev/vc/0 /dev/vc/0 4 0 system:vtmaster serial /dev/ttyS 4 64-95 serial pty_slave /dev/pts 136 0-1048…
ほぇー、すごい品揃え!! SICPがあんなに積まれている光景、はじめてみた。 すげぇな、ジュンク堂。なかなか感動した。 で、むかいの紀伊國屋書店で、買いました。 (ってそういうオチか!) ジュンク堂に行く前に入った紀伊國屋で 見つかったので買ったの…
1-3月の棚卸をしたときに書いたと思ったけど 書いてなかったっぽい、4-6月に重点的にやること。 Linuxデバイスドライバ コンパイラの勉強 開発環境の改善 (webブラウザ、スクリプト環境) リアル(デバイス)との接続をしっかりやること。 コンパイラはちょ…
奥さんと子供が、実家に帰って楽しんでいて (子供は、じぃじ、ばぁばを喜ばせていて 奥さんも、日頃の子育ておつかれさま、ということで ゆっくりしてもらっていたり) 自分は G/W終盤までは、やることがいろいろあるので残っていて その間、リビングを作業…
は からインクルードされていて コマンド番号の設定を助けるマクロを定義している。 たとえば... __IO(type,nr) 引数なしのコマンド用 _IOR(type,nr,datatype) ドライバからのデータ読み出し用 _IOW(type,nr,datatype) データ書き込み用 _IOWR(type,nr,datat…
いまからはじまるのか。わくわく。 http://www.ustream.tv/channel/1000speakers おもしろかった 元薬剤師の方の発表がすごくうまい! BrainF*ck (BF)が流行っていた。 Erlangも動いてた。 ゆとりの人、 RTL書いたら面白いことになりそうだけどなぁ。 Ust配…
休みま〜す、って宣言して G/Wに突入した。 ベストを尽くしている。 悪条件だけど、なんとかドローにもちこんでいる。 ノープロブレム。 先月、自チームで選手交代があったけど よいチームになってきている。休み明けに後悔しないように、自分を律していく。
Linuxデバイスドライバの学習を進めていて メモリ操作の仕組みとか、プロセススケジューリングのあたりを しっかりおさえたい、ということで購入。 どんどん進もう。 詳解 Linuxカーネル 第3版作者: Daniel P. Bovet,Marco Cesati,高橋浩和,杉田由美子,清水…
Linuxデバイスドライバ 第3版 最終章がTTYドライバなんだけど あんまり複雑なことをしなくても サックリと試せて、導入にはいいかも、と 朝の通勤電車で読んでみて思った。 実際に動かすのが楽しくて、勉強しやすいし。 仮想デバイスで printk( )を使って 出…
メモ register_chrdev_region() alloc_chrdev_region() unregister_chrdev_region() MKDEV() MAJOR() MINOR() cdev_init() cdev_add() cdev_del() cdev_alloc() デバイス番号の割り当てと解放 ソース (hoge_chrdev.c) とりあえずこんな感じ。 #include <linux/init.h> #inc</linux/init.h>…