Linux

CentOS 5.6 上で Broadcom NetXtreme II は遅くなかった

結局は処理が当該ハードで遅かっただけでした。 それにしても、パフォーマンスの問題とは難しいものである・・・

CentOS 5.6 上で Broadcom NetXtreme II が遅い気がする

なんとなく気になる・・・Bug 641495 - [Broadcom 5.7 bug] bnx2 v2.0.8+ has scatter gather problem on AMD Dinar system $ modinfo bnx2 filename: /lib/modules/2.6.18-238.19.1.el5/kernel/drivers/net/bnx2.ko version: 2.0.8-rh ・ ・ ・ $ ethtool -…

続・libc なんていらないもん!

たけおかさんにwrite()くらいしてほしいと突っ込みをいただいたので、やってみました。Linux 32bit int write(int filedes, const void *buf, unsigned int nbyte) { int rv; asm("movl $4,%%eax\n\t" "movl %3,%%edx\n\t" "movl %2,%%ecx\n\t" "movl %1,%%e…

libc なんていらないもん!

libc 無しでとりあえず動くプログラムを、LinuxやMac OSで作ってみた。 _exit()のため、アセンブリ言語のコードがあります。なかなかおもしろいけど、これをやるくらいなら全部アセンブリ言語で書いた方がいいな〜Linux 32bit int main(int argc, char *argv…

PHPでパケットキャプチャを書いてみた(超適当)

ふと、思い立って PHPでパケットキャプチャをしてみました。 キャプチャといっても、本当に実験レベルの適当な感じですが・・・意外とPHPのextensionは簡単につくれることがわかった!http://blogs.itmedia.co.jp/mtaneda/2011/06/php-a678.html

CentOS 5.5 で PPTPサーバを構築

ssh トンネルを使っていましたが、調子が悪いので PPTP にすることにしました。 本当は IPsec にしたかったのですが、相手が安物ルータなので仕方がない・・・ まずは、pptpd パッケージをインストール。 # wget http://poptop.sourceforge.net/yum/beta/pac…

gdb で core を吐かせる

SIGQUITをマスクしているようなプログラムのコアを吐かせてあとから解析したい場合、 gdb でアタッチしてから、プロンプトに generate-core-file と入力すれば、カレントディレクトリにcoreがはかれます。root@ns:~# gdb -p 4241 GNU gdb (GDB) 7.0.1-debian…

sigwait() は SIGCHLD を待てない

社内でこんな話題が出たので、実験してみました。#include #include int main(int argc, char *argv[]) { int no; sigset_t ss; (void) sigemptyset(&ss); if (sigaddset(&ss, SIGCHLD) != 0) { return (-1); } if (sigaddset(&ss, SIGHUP) != 0) { return (…

ext3のジャーナルをjournalモード

使っているLinuxマシンが急に停電しても、壊れにくくするために、ext3のjournalモードを使ってみました。 通常のorderedモードのメタデータに加え、 journalモードは、実際のデータの書き込みをもってジャーナルの記録をするため、信頼性が高いらしいです。 …

Armadillo-440 の Debian で KDrive を使う

Armadillo-440 に DATA IMAGE の FG0700K5DSSWAGT1 をつないだとき、 カーネルのフレームバッファは、ドライバに適切なパラメータを与えると綺麗に画像が表示されます。 (mxcfb_modedb.cを編集して再コンパイル)このカーネルで、Debianに付属のXサーバを使…

CentOS で DHCPv6 を使った動的 IPv6アドレスの割り当て

以前 Windows XP や、MacOS X、Debian で DHCPv6 を使う記事 を書きました。 今回は、CentOS 5 での利用方法です。 /etc/dhclient-eth0.conf があることを確認する /etc/dhcp6c.conf 編集 interface eth0 { }; /etc/sysconfig/network-scripts/ifcfg-eth0 編…

Debian/GNU Linux で DHCPv6 を使った動的 IPv6アドレスの割り当て

以前 Windows や、MacOS X で DHCPv6 を使う記事 を書きましたが、Debian GNU/Linux での方法も紹介します。私が知っている方法で一番簡単なのは、Dibbler というアプリケーションを使う方法です。 # apt-get install dibbler-client # /etc/init.d/dibbler-…

2011-01-21 (金) LBIサロン:様々な側面の仮想化とLinux のご案内

私が理事を務めさせていただいている、LBI で、1/21(金) に Linux及び、仮想化関連の勉強会が開催されます。LBIは、Linuxユーザ、開発者のコミュニティや関連諸団体と良好な関係を保ちながら、 Linux関連ビジネスの健全な成長のために、次のような活動を行っ…

7" タッチパネル LCD 起動画面

昨日に引き続き Armadillo 440 ネタです。Armadillo 440 では、アットマークテクノさんが配布しているカーネルソースの、 drivers/video/logo/logo_armadillo_clut224.ppm を差し替えると、簡単に起動時のロゴを変更することができます。このファイルは PNM(…

eth0とeth1を入れ替えるには

Linux で eth0 と eth1 など、イーサネットデバイスの番号を入れ替えるには、 /etc/modules.conf に、 alias eth0 e1000e alias eth1 e1000などと記述する方法。(それぞれが別デバイスドライバのみ有効) /etc/udev/rules.d/nn-persistent-net.rules におい…

Linuxの複数NIC時の挙動

知っている人にとっては常識ですが、Linux では例えば、 eth0 に 192.168.0.1、 eth1 に 192.168.0.2、 というアドレスが割り当てられていて、eth0 だけが 192.168.0.0/24 のネットワークに繋がっているときに、 192.168.0.2 への ARP Request があると eth0…

目で見て耳で聞けるプログラミングは楽しい

いつも頼りにしていただいているお客様から、 あるキャプチャデバイスが Linux でのビデオキャプチャ及びオーディオキャプチャにきちんと対応しているか、 性能は十分か検証して欲しいとのご依頼を受けました。 NCADでは以前オリジナルの VoIP システムを作…

Armadillo-220 用の romfs.img.gz を qemu で動かす

出張中でも Armadillo の開発がしたい! でも、ただでさえコンピュータ2、3台を持って行っている身としては、これ以上 Armadillo とかも鞄に忍ばせたくはない・・・ そこで、ARM CPU もエミュレーションできる QEMU を使って、それっぽく Armadillo-220 用…

パスワード無しでリモートホストにログインする

いつも忘れてしまうので、自分の備忘録を兼ねて残しておきます。 全て自分の端末からの操作で、リモートホストにはパスワードでssh ログインできることが前提です。 ~% ssh-keygen -C "No password login for root@192.168.0.1" -f ~/.ssh/id_dsa.192.168.0.…

クライアント/サーバ 両方の機能があるアプリケーション開発に sshfs がとても便利

現在いただいている案件で、クライアント/サーバ 両方の機能が一つの実行モジュールに入ったアプリケーションを開発中です。 クライアントとサーバを別々のコンピュータで動作させてテストをしたい場合、 ごく普通の手順で考えると、 ソースコードはどちらか…

epoll を使ってクライアントコードを書いてみた

今回は libevent ではなく、epoll を生で使ってサーバ/クライアントのセットを書いていました。 クライアントがなぜか必ずタイムアウトして終了するという謎の現象に悩まされましたが、 よくよくみてみると、 ev.events = (u_int32_t) EPOLLIN;としていたこ…

iptablesのconntrackをパンクさせる

今手がけている案件でiptablesのconntrackの動きを調査していたのですが、 rawsocketでOSのプロトコルスタックを使わず、 勝手に3way handshakeをものすごい勢いで行う専用ツールを使うと、 短期間でconntrackのエントリーがip_conntrack_maxに達してしまう…

/etc/fstab に書いてあるのに起動時のNFSマウントができない

/etc/fstab に正しく書いてあるにもかかわらず、起動時に自動的に NFS マウントがされないマシンが数台ありました。 長らくあまり気にとめていませんでしたが、急に気になり出しので原因を調べてみることに・・・とても簡単な事でした。まず、NIC モジュール…

Debian パッケージ作りのメモ

自分で作ったプログラムをDebianパッケージにするメモです。 微妙に規則違反の可能性もありますが、、、 リポジトリからソースを取得して tar.gz で固める % mkdir myprogram-1.0.0 % cd myprogram-1.0.0 % svn co http://location/svn/myprogram/trunk mypr…

SKB BUG: Invalid truesize

GNU/Linux 5.0(lenny) になってから、カーネルが 2.6.26 になりましたが、うちの環境では変なエラーが多発するようになってしまいました。 Apr 11 01:00:46 linux kernel: [1200742.272083] SKB BUG: Invalid truesize (276) len=118, sizeof(sk_buff)=180 A…

Courier-IMAP で CRAM-MD5 (Debian/GNU Linux(sarge)

生でパスワードが流れるのはさすがにまずいので,CRAM-MD5 を導入してみました. 内容は重要なものについてはPGP使うからいっかーということで,SSL/TSLは今回は見送りました. /etc/courier/authdaemonrc:26 を, authmodulelist="authpam authcram" に,変…

NIC,UTPが正常なのにpingが通らない(通信できない)

現在家庭内サーバを Linux の Samba で構築しました。 ハードディスクが壊れてしまったので, 用心としてのバックアップサーバなのですが, これを構築するまでにすごいハマった出来事があるので書き残します。 なんといいますか, Intel の 100/PRO の NIC …

VMware が無料になりましたね

VMwareが無料になりました。 さっそく仮想化サーバをためしてみようと, LinuxサーバにVMware本体をインストール, WindowsにVMware Server Consoleをインストール。 さっそく接続するもサーバに繋がりません。 クライアントに"Malformed response from serv…

現行システムをRAID 1化する (Debian GNU/Linux 3.1(sarge))

以前やった現行システム(root ファイルシステム含む)のRAID化のメモです。 ハマった点も書いておきますので, お役に立てれば幸いです。 まずカーネルがサポートしている必要があります。 RAID 1(ミラーリング)なので最低限以下のオプションが含まれている…

freepops で Hotmail が使えない Debian GNU/Linux 3.1(sarge)

ここんとこ最近ずっと freepops で Hotmail が利用できなくなっていました。 これはウェブ・メール(有名どころはほとんどカバー)していて, それをPOP3として利用できる非常に便利なデーモンなのです。 luaというプラグインスクリプトで事実上どのようなウ…