MacOSX の samba と smbfs (2009/03/11(Wed) 12:01:33)MacOSX の samba サーバーを mount -t smbfs 云々でマウントすると、 smb_add_request: request [xxxxx, mid=xx] timed out! や、 Connection reset by peer とかいうメッセージが出てファイルが読めないのだが、以下の設定を MacOSX の smb.conf に施してやるとよい(クライアント側で cifs 使えというのは重々承知の上)。 Finder で、アプリケーション->ユーティリティ->コンソールを起動 |
|
$ sudo su - Password: 現在のユーザーパスワード # cp /etc/smb.conf /etc/smb.conf.org # cat /etc/smb.conf.org|sed -e s/sendfile\ \=\ yes/sendfile\ \=\ no/ > /etc/smb.conf # cat /etc/smb.conf|grep sendfile で確認 # killall -HUP smbd;killall -HUP nmbd |
| 要するに、use sendfile = yes を no にする。 samba のデフォルト値も3.0.x で一旦 yes になってから、すぐに no に戻ったので、いわくつきなパラメーターなんじゃないかな。 man ページでも、効果がよくわかんないからデフォルトは no ね。見たいな事かいてあるし。 |
anthy で顔文字 (2009/02/18(Wed) 21:23:50 )anthy で顔文字を追加してみた。オレンジの顔文字辞書ver3.1 ( http://www.facemark.jp/download.htm )「IME2000/98 システム辞書インターネット対応」を持ってきて、展開(lha -x)する。 展開されたディレクトリで以下のスクリプトを実行。 |
|
$ nkf -S -e list.txt | tail -n+4 \ | awk '{print $1,"500",$2 "\n" \ > kao.src $ cat kao.src | anthy-dic-tool --append |
|
ちなみに、anthy は、うちのサイトに置いてある、anthy-9100h にあげてあります。 canna の ctd 辞書ファイルも |
|
$ cat /var/lib/canna/dic/canna/kaom.ctd | grep " #"\ | awk '{print $1,"500",$3 "\n" \ > kaom.src $ cat kaom.src | anthy-dic-tool --append |
| のようにできるな。 |
覚え書き@IPv6 (2008/11/13(Thu) 12:59:31 ) - (2009/02/04(Wed) 20:53:51 )pingする。 |
| $ ping6 -I eth0 fe80::201:80ff:fe61:ed23 |
|
ssh で接続 |
| $ ssh fe80::201:80ff:fe61:ed23%eth0 |
|
DeleGate の起動(IPv4 と、IPv6 両方) |
| $ delegated -P10080,__:10080 SERVER=... |
|
Firefox3 Proxy設定 プロキシ fe80::201:80ff:fe61:ed23%eth0 ポート 10080 「範囲:リンク」となっているアドレスにバインドした ftp サーバ(ftp クライアントから?)には ftpdata 接続ができないらしい。 DeleGate の IPv6 サポートでは、subin が使えなくなっているのね。 delegated -P__:80,80 -vv とかやると、IPv4 では、特権ポートのバインドに subin を使ってくれるけど、IPv6での特権ポートへのバインドは失敗する。そのため、delegated を root で setuid する必要がある。このようなコマンドを root で実行する。 |
| # delegated -Fimp -m |
|
こうすると、delegated は特権操作が可能な root 権限を持つものと、起動ユーザーの権限しかないものといった親子で起動されるようになる。 # ま、subin は obsolete だった気がするので。 |
Squid & pam (2009/01/31(Sat) 08:32:32 )初めて、Squid を使ってみた。pam_auth のテストしただけなんだけど。。。pam_auth を使って pam 経由で UNIX パスワードにアクセスするには、root 権限の sticky ビットが必要なので、 (man 8 pam_auth 参照) |
| # chmod u+s /usr/lib/squid/pam_auth |
|
する。これは、DeleGate の subin とか、postfix のsaslauthd とかと同じかな。 でも、squid.conf は、わかりにくいな。なれだろうけど。 |
kdocker (2008/12/19(Fri) 10:51:27 )最近 Firefox3 の起動に妙に時間がかかるので、高速起動をやってみた。alltray てのを最初に試したのだけれど、どうも動きが安定しない。 で、kdocker を使ってみる。 |
|
$ /usr/lib/qt-3.3.5/bin/qmake $ make # make install |
|
したあと、~/.kde/Autostart/kdocker.desktop を作る。 内容: |
|
$ cat kdocker.desktop [Desktop Entry] Comment= Comment[ja]= Encoding=UTF-8 Exec=/usr/local/bin/kdocker firefox GenericName= GenericName[ja]= Icon=exec MimeType= Name= Name[ja]= Path= StartupNotify=true Terminal=false TerminalOptions= Type=Application X-DCOP-ServiceType= X-KDE-SubstituteUID=false X-KDE-Username= |
| これで、KDE 起動時に、firefox がドックされるので、高速起動が出来る。 |
flash player 10 and Vine4.2 (2008/10/16(Thu) 19:39:04 )-(2008/11/03(Mon) 10:44:47 )さて、flash player 10 がリリースされましたが、もちろん Vine Linux では簡単には使えないでしょう。そろそろきついかな。。。 さて、Vine Linux 4.2 で 新しい Flash Player 10 ( flashplayer )を動かすには... ##### WARNING WARNING WARNING ##### libc を入れ換えるので、互換性問題がでるかもしれません。 私のところでは問題は表面化していませんが。 ##### WARNING WARNING WARNING ##### ・VineSeed から、ftp で以下のファイルをとってきます。(バージョンは変化していると思う) binutils-2.18.50.0.6-1vl5.i386.rpm binutils-devel-2.18.50.0.6-1vl5.i386.rpm tzdata-2008b-1vl5.noarch.rpm glibc-2.8-1vl5.i686.rpm glibc-common-2.8-1vl5.i386.rpm glibc-utils-2.8-1vl5.i386.rpm glibc-devel-2.8-1vl5.i386.rpm glibc-headers-2.8-1vl5.i386.rpm libstdc++34-4.1.2-19vl5.i386.rpm libgcc-4.1.2-19vl5.i386.rpm ・ちょっと邪魔なものを削除。 |
|
# apt-get remove build-essential # apt-get remove gcc # apt-get remove gcc-cpp |
|
・ライブラリをアップデート |
|
# rpm -Uvh libstdc++34-4.1.2-19vl5.i386.rpm # rpm -Uvh tzdata-2008b-1vl5.noarch.rpm # rpm -Uvh glibc* binutils* |
| ・これを先にやるとはまるので注意。 |
|
# cp -a /lib/libgcc_s-3.3.6.so.1 /lib/libgcc_s-3.3.6.so.1.bkup # cp -a /lib/libgcc_s.so.1 /lib/libgcc_s.so.1.bkup # rpm -Uvh libgcc-4.1.2-19vl5.i386.rpm |
|
・gcc 3.3.6 が必要な人は。 VineSeed Plus からこれをとってくる。 gcc3-3.3.6-0vl9.i386.rpm gcc3-c++-3.3.6-0vl9.i386.rpm gcc3-cpp-3.3.6-0vl9.i386.rpm |
| # rpm -ivh gcc3* |
|
これで、新しい Flash Player が Firefox 3.0.3-1vl4 で動くはず。 ちなみに、本家の Firefox3 を動かすには、上記に加えて、 |
| # apt-get install gtk210* |
|
で、gtk2.10 のライブラリをインストールして、
以下のシェルスクリプトで起動する。 --- contents of start_firefox3 --- |
|
#!/bin/sh LD_PRELOAD=\ ~/firefox/firefox |
|
--- contents of start_firefox3 --- glibc のバイナリ互換性。 色々調べたんですが、なんとなくだけど、こんな感じ。
KDE3, gnome, XFce4, xine, wine, firefox3, firefox2, thunderbird2, kaffeine, kita, digiKam, Audacity, OOo3, GKrellM, cinepaint, eclipse3.2, google earth, vnc, gimp, tux kart, defendguin, mirror magic, xpuyopuyo, vmware player, grip, X DC Roast, Superkaramba, ClamAV, baobab, Dia, Xgl, beryl, Noatun, Adobe Reader, proftpd, sshd |
OOo3 が凍る (2008/10/29(Wed) 08:40:54 )うーむ、こんな解決策があったのか。http://www.k2.dion.ne.jp/~mistle/linux/application/openOffice.html |
| # vi /opt/openoffice.org3/program/soffice |
| で以下の行のコメントを外す(#トル)。 |
| # SAL_NO_XINITTHREADS=true; export SAL_NO_XINITTHREADS |
|
これじゃ使いものにならん! と思っていたが、良かった。 |
vinelinux で Xgl + beryl (2008/10/12(Sun) 07:21:39 )Vine Linux 4.2 で beryl がやっと動いた。startxgl などに |
|
#!/bin/sh Xgl :0 -ac -accel xv -accel glx:pbuffer & DISPLAY=:0 beryl-xgl --use-copy & DISPLAY=:0 startkde |
|
とか書いておく。 http://shino.pos.to/linux/autox.html を参考に runlevel 4 を Xgl に割り当てた で、 kde の AutoStart から、 |
|
if [ "`/sbin/runlevel|grep 4`" != "" ];then sleep 10;beryl-manager fi |
|
とかしてやる。 単純に起動方法は、 |
| $ ~/startxgl |
|
beryl-xgl の起動オプションの --use-copy を付けないと、真っ白だった。 ちなみに CPU: P4-2.4G GPU: ATI Technologies Inc RV350 AP [Radeon 9600] (Secondary) ati-driver-installer-8.39.4-x86.x86_64 普通に使ってると問題ないけど、重いことやると固まったりするときもある。 |
Radeon 9600/9200 & Google Earth (2008/09/27(Sat) 00:37:17 )VineLinux4.2 & Radeon 9600/9200 で、GoogleEarth が使えるドライバはこれでした。http://www.amd.com/us-en/ 経由でダウンロードできるドライバのバージョン Radeon 9600 : ati-driver-installer-8.39.4-x86.x86_64.run Radeon 9200 : ati-driver-installer-8.27.10-x86.run むむ。 |
Vista & Vine Dual boot (2008/09/25(Thu) 07:44:35 )-(2008/09/25(Thu) 07:45:16 )てのをやってみた。Vista になってから面倒くさ。 なにせ、Vista と "同じHDD" 上で、GRUB を使ってデュアルブートすると、あとで問題を起こすらしい。 なので、Windows のブートローダーを使わなきゃならん。 ちょっと初心者には敷居が高くなってしまった。 でもちゃんとした手順でやれば問題ないのだけどね。まず、Parted Magic(128MB の CFにインストール)を使って、パーティションの切り直しをした。前方にすき間を作るのは危険なので、後方に空きを作った。とりあえず、8GBの余白を確保。再構成に約6時間強(;;)。 参考:http://it-revolution.seesaa.net/article/84641084.html 説明では syslinux.exe を別から持ってきているけど、Parted Magic に含まれていたのでそれを使った。 で、CDROMドライブがないので、USB メモリからのインストールをするための CF を使ったUSBブートドライブを作る。6GB の Micro Drive にブートディスクを作成。 参考:http://d.hatena.ne.jp/funkybass/20070529 説明中の isolinux.cfg は、 ftp.vinelinux.org/pub/Vine/Vine-4.2/i386/isolinux/ から持ってきたので、knoppix は不要。 syslinux は、Parted Magic のを使った。 そして、実際のインストール。 参考:http://www.linuxmania.jp/dualboot2.html ここがちょっと、厄介。 要点は、
・インストール後、GRUB のインストール先パーティションの先頭(512バイト)をダンプして、C ドライブにコピーする。 これは、Parted Magic のディスクでブートしてダンプして、Vista 上にコピーできる。 ・Vista の ブートマネージャを使うための設定をする。 ま、そのうち使う羽目になるだろうから、あとでちゃんとまとめます。 |
via_velocity でカーネルパニック (2008/08/30(Sat) 10:41:48 )-(2008/09/02(Tue) 14:30:55 )via_velocity でジャンボフレーム(MTU=9000)を使おうとしたら、カーネルパニックした。/etc/sysconfig/network-scripts/ifcfg-eth0 に書くとだめらしい。ダメなんだから諦めりゃーいいのに、悪あがき。 結局、rc.local で、 |
| /sbin/ifconfig eth0 mtu 9000 |
|
を実行することで使えるみたい。 何故?負荷かけても大丈夫みたいだし、ちょっと、追っかけるパワー無し。 ついでに、以下の設定のようにした。 rc.local |
|
/sbin/ifconfig eth0 mtu 9000 # /sbin/route del default # /sbin/ip route add default via 192.168.0.1 mtu 1500 /sbin/ip route change default via 192.168.0.1 mtu 1500 |
| /etc/sysctl.conf |
|
net.ipv4.tcp_window_scaling = 1 net.ipv4.tcp_rmem = 4096 873800 1747600 net.ipv4.tcp_wmem = 4096 873800 1747600 net.ipv4.tcp_mem = 2048000 2048000 2048000 net.core.rmem_default = 873800 net.core.wmem_default = 873800 net.core.rmem_max = 1747600 net.core.wmem_max = 1747600 net.core.optmem_max = 20480 |
SDL キーリピート (2008/01/26(Sat) 08:16:10 )-(2008/08/21(Thu) 17:30:34 )SDL の疑似キーリピート機能には、問題がある様子。特定の条件下で、キーリピートしっぱなしになってしまう。 ・なんらかのきっかけで、キーの Break(SDL_RELEASED) がこないのか...そうともいえない動きをしているようにも見える。うーむ。。。 もちょっと、調べてみよう。 ・なるほど、tty(Medium-raw mode)から read() したときに、バッファに複数のキーが溜るようなケースで、キーのリリースが来ないことがあるのか....カーネルのバグかなぁ... ・しかたないので、SDL ビデオ初期化ルーチンで KDKBDREP ioctl を使って、キーのリピートレートを問題無いくらいに遅くした。これでも、キーが非常に短い間に press->release されると再現するなぁ...困った... ・そういえば、これは、1度に2文字以上きた場合、全て Release として扱うことで解消しました。 ・うーむ、そりゃそうなんだが、モディファイアキーもですか。 ・処置無しです。SDL のキールーチンを RAW モードで全部書き換えるかなぁ。 ・結局、コンソールの read() で、BUFSIZ まで一気に読んでいたのを、1バイトづつに変更したら直ったみたい(謎)。 |
ダイナミック DNS (2008/08/12(Tue) 19:09:51 )-(2008/08/09(Sat) 09:14:33 )プロバイダがが無くなってしまう。しかし、執行猶予が2ヶ月とは...ま、それはいいが、固定IP が使えなくなるのは困る。 しかたないので、DDNS の準備。 とりあえず、以下のスクリプトを cron で動かすことに。 --- |
|
#!/bin/sh # Setting for eNom(VALUEDOMAIN.COM) NEWIP=`/usr/bin/curl http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip 2>/dev/null` LEN=$(expr length "$NEWIP") while [ ${LEN} -gt 15 ]; do done if [ ${LEN} -lt 7 ]; then fi OLDIP=`cat /home/user/oldip` URL="http://dyn.value-domain.com/cgi-bin/dyn.fcg?p=PASSWD&;d=example.jp&i=$NEWIP&h" WGET="/usr/bin/curl" if [ "$NEWIP" != "$OLDIP" ]; then fi |
むむ、ここの DDNS、ttl が 1h だ。 長い... dyn.value-domain.com/cgi-bin/dyn.fcg?ip のサービスが、結構ダウンしているみたい。 結果の[1-9|\.]を取り除いた長さが 0 かどうかのチェックを入れる必要があるな。 とりあえず、ADSLモデムの設定を見る方に変えたけど。 おぉ、cgi から登録すると TTL=92s になるのか。 web から登録すると TTL=3600s になるのか。 知らんかった。 cgi から登録する前に、登録したいレコードを全部削除しておかないと、ダメだけど。 |
signal ? (2008/08/08(Fri) 06:03:24 )どうも、でばどら内で、kill_proc() を呼んでいるところ、-EPERM でエラーが返ることがあるな。kill_proc_info_as_uid() にしてみたのだけど、いいのか? |
glibc detected (2008/05/22(Thu) 16:13:04 )*** glibc detected *** free(): invalid next size (fast): 0xXXXXXXXX ***バッファオーバーフローか...そうか。 注)バッファオーバーフローでもそういうことになるということ。 |
tracef (hogetrace) (2008/05/09(Fri) 13:49:38 )tracef を使ってみたいのだけど、./configure / make が通らない。 とりあえず、 |
|
# apt-get install boost* # apt-get install libelf-devel # ln -s \ |
|
してから、何箇所か変更。 TLS_ (__thread) で宣言されていると、SEGV してしまう。 g++ よくわからん。 なんとなく動いたので、 i-red.info/docs/rpm/stray_rpms/tracef/ に置いてみた。 |
| $ configue;make; # cp src/tracef /usr/bin |
| $ tracef --plt --line-numbers --call-tree PROG |
|
とか。 注) gcc(g++)) が 4.x 以降じゃないと使えないらしい。 |
signal (2008/04/04(Fri) 09:14:58 )意外と書いてないので...FAQ?sigqueue() でシグナルを送信したときに妙な動き、 # SIGUSR1 シグナルが1つしか保留されないといったもの。 ちょっと、調べてみたので、参考まで。 まず、これに関して、この動きは正しい。というか、仕様。 なぜなら、この、SIGUSR1 というのは、"POSIX signal" であるということ。 POSIX signal は、1つのプロセスが signalハンドラにいて、シグナルをブロックしている場合、同じシグナルは、1つだけが保留されるということになっているらしい。 ------------------------------------------------------------------------------------ では、どうすれば... POSIX realtime signal を使う。 POSIX realtime signal は、シグナルをプロセスのシグナルキュー?にため込むので、そのような制限は無くなっている。 注) Linux の場合、制限はある。OS レベルで数が制限されている... で、どの様に使うのか。 簡単。 単に、シグナル番号に、SIGRTMIN 以上、SIGRTMAX 未満の番号を使うだけ。 ただ、SIGRTMIN (多分 32) は、システム依存なうえに、 bits/signum.h 内で、関数(__libc_current_sigrtmin ()) を指すマクロとして定義されているので、switch 文 の case で使えない? この件に関しては、多分、経過措置であろう マクロ __SIGRTMIN を使うことで回避できる。 たとえば、 #define SIG_NANDAKANA (__SIGRTMIN + 5) や、 #define SIG_HOGEHOGE (__SIGRTMAX - 5) 補足: RealTime シグナルを使っていて Catch していないのがあると、1982 回で EAGAIN になりシグナルが機能しなくなる。 制限は、RLIMIT_SIGPENDING に定義されている。 |
kaffeine (2008/03/23(Sun) 11:15:45 )kaffeine-0.8.6 の configure が、どうも xine-lib を見付けてくれないので、configure を書き換えてしもうた。xine-lib の検出部分を全てコメントアウトして、 CFLAGS_XINE="" LIB_XINE="" を CFLAGS_XINE="-I/usr/include/xine" LIB_XINE="-lxine" に変更して残した。 もうちょっと勉強。 |
CF-PCMCIA (2008/01/22(Tue) 21:44:56 )PCMCIA で CF を使うとものすごく遅い。CF の True-IDE モードは、16ビット-PCMCIA でしか動かないらしいのだが、1.2MB/s が限界ってのは。。。 CF-CARDBUS コンバータを使えば多少マシらしいが、USB の方がはるかに早い。困ったものだ。 |
cp / mv(rename) (2007/11/30(Fri) 07:10:56 )システム関連のファイルを書き換えるときは、cp を使うことは出来ない。ということに最近気がつく(^^;。なので、mv / raname() を使いませう。 cp だと、ファイルが不完全な状態が長すぎるということで、特にライブラリファイルなどについては、それを使っているアプリケーションが "Z" してしまう。 mv/rename でやる場合も、同じファイルシステム内にあるファイルじゃないと、ダメなんではないかな。 busybox の tar コマンドは、ファイルをコピーしているのだろうか。 gnu の tar コマンドは大丈夫みたい。追っかける気無し(^^;;; |
fileno (2007/10/23(Tue) 07:43:50 )fileno(NULL) って、SIGSEGV になっちゃうのね。man ページ見ると、 However, in case fileno() detects that its argument is not a valid stream, it must return -1 and set errno to EBADF. なんて、書いてあるのにね。 |
fancontrol (2007/10/23(Tue) 07:43:19 )lm-sensors + fancontrol を使って、ファンを制御してみる。 |
| # /usr/sbin/pwmconfig |
|
で設定ファイルを作るのだが、よくわからない所も多いので、以下のテンプレートを使って設定してみる(動かないときは、素直に pwmconfig を使いましょう)。 # どの温度計がどのファンに対応してて、どの PWM で制御するのかは、pwmconfig の出力(とりあえず、全部[Enter] で応答)を眺めていると見えてくるかも。 --- /etc/fancontrol の中身(コメントは使わない) --- |
|
# モニター間隔(秒) INTERVAL=10 # どの 温度計が、どの PWM(ファンの速度)と対応しているのか。 FCTEMPS=hwmon0/device/pwm1=hwmon0/device/temp2_input hwmon0/device/pwm3=hwmon0/device/temp1_input # どの PWM でどのファンを制御するのか FCFANS=hwmon0/device/pwm1=hwmon1/device/fan1_input hwmon0/device/pwm3=hwmon1/device/fan3_input # ファンを停止する温度 MINTEMP=hwmon0/device/pwm1=40 hwmon0/device/pwm3=40 # ファンを目一杯回す温度 MAXTEMP=hwmon0/device/pwm1=60 hwmon0/device/pwm3=60 # 開始ファン速度 PWM 値(0-255) MINSTART=hwmon0/device/pwm1=150 hwmon0/device/pwm3=150 # ファンが停止する PWM 値(0-255) MINSTOP=hwmon0/device/pwm1=0 hwmon0/device/pwm3=0 |
|
-------------------------- なお、複数のファンを制御するときは上記のように、 パラメータ名=設定 設定 のように、空白で区切って続ける。 rc.local とかで、 |
| /usr/sbin/fancontrol &> /var/log/fancontrol.log & |
|
のように起動。 BIOS より、こっちの方が、きめ細かく制御できていいね。 ちなみに、/usr/sbin/fancontrol は、スクリプトです。 |
備忘録 (initrd)(2007/09/01(Sat) 15:27:46 )initrd.img を直接いじる方法まずは、展開。 |
|
# cd /boot # mkdir wk # cd wk # zcat ../initrd.img | cpio -idmv |
| でてきた中身を調整とか。 |
|
# find | cpio -H newc -o | gzip -9 > ../initrd.img |
|
で、lilo 。 ちなみに、VMWare を使うのに、initrd.img に対して 以下のような変更を行った。 展開してできた、lib ディレクトリに |
|
/lib/modules/.../scsi/scsi_mod.ko /lib/modules/.../scsi/sd_mod.ko /lib/modules/.../scsi/BusLogic.ko |
|
をコピーし、 init の mkdevices 行より前に、 |
|
insmod /lib/scsi_mod.ko insmod /lib/sd_mod.ko insmod /lib/BusLogic.ko sleep 10 |
|
を追加。 これで、usb 接続の 物理デバイスからのブートができた。 |
むむむ。 (2007/08/29(Wed) 07:54:30 )-(2007/08/31(Fri) 07:20:43 )GeodeLX の コンパニオン、CS5536 の UART2 を 16550 コンパチで使おうとしているのだけど、カーネルでこのポートの rx (GPIO3) を出力に書き換えている部分が "どこかに" あるみたいだ。起動してから、設定し直しても良いんだけど、それまで、出力がぶつかっちゃうしなぁ... 見つからないなぁ...(;;) なんか、DDC-SCL 関連のようなのだけど、start_kernel より前みたい (;;)。 setup.S とかなのかなぁ? arch/i386/boot/video.S : line 1948 あたりに、それらしきものを見付けた。 int10 BIOS call なのね。 キーワードは "VBE" です。 |
linux-2.6.x boot logo (2007/05/31(Thu) 14:53:50 )linux-2.6.x で、フレームバッファの起動ロゴ変更する方法。linux-2.4.x の時は、カーネルのソースに、サイズが直書きしてあったり、 drivers/video/fbcon.c の以下の部分 |
|
#define LOGO_H 80 #define LOGO_W 80 |
|
その画像自体がヘッダファイル(linux_logo.h)で、
それをを作る gimp のユーティリティ GLOGO 1.3: A gimp plug-in to create the linux-logo includefile でもサイズ固定で直接書き直す必要があった。 glogo.c の以下の部分 |
| #define WIDTH 80 #define HEIGHT 80 |
| および、glogo_simple.scm の以下の部分。 |
| (gimp-image-scale img2 80 80) (gimp-image-scale img16 80 80) (gimp-image-scale img224 80 80) |
linux-2.6.x のばあい、サイズはとりあえず気にしなくとも良いので、 だいぶ楽になりました。 ・基本的には、好きな png ファイルを作る。 ・以下のコマンドで ppm に変換する。 |
| $ pngtopnm logo.png | pnmtoplainpnm > logo_linux_clut224.ppm |
| ・そして、カーネルソースツリーのそれと置き換える。 |
| $ cp logo_linux_clut224.ppm /usr/src/linux/drivers/video/logo/ |
・カーネルのコンパイル時に色が足りないなどといわれた場合 |
| $ pngtopnm logo.png | ppmquant -fs 223 | pnmtoplainpnm > logo_linux_clut224.ppm |
|
で、色数を減らす。 Vine-Linux4.1 での kernel-2.6.16-0vlxx.src.rpm の SPEC ファイルでは、 以下のように差し替えているので、 |
|
... # fb boot logo Source100: logo_vine_clut224.ppm ... cp -f %{SOURCE100} drivers/video/logo/logo_linux_clut224.ppm ... |
| rpm/SOURCES の logo_vine_clut224.ppm を新しいものに置換え、 rpmbuild する。 |
Konqueror の文字化け (2007/07/13(Fri) 13:33:54 )Konqueror から、smb://user@server/Share の様に開けるのが便利なのだけど、 日本語が化けてしまっていたのであきらめて、 fstab に書いてマウントしまっていた。 が、 ~/.smb/smb.conf というファイルとディレクトリを作って、中身を以下のようにすれば良いそうだ。 |
|
[global] dos charset = CP932 |
pdftotext (2007/01/16(Tue) 21:40:22 )-(2007/01/18(Thu) 17:00:20 )ひさびさに使ってみたら、Acrobat7 のドキュメントは変換できないみたい...どうやって、freyasx の index 作ろう。。。強引に変更。 |
|
--- pdftotext.cc~ 2005-08-17 14:34:31.000000000 +0900 +++ pdftotext.cc 2007-01-17 09:44:47.000000000 +0900 @@ -161,12 +161,14 @@ } // check for copy permission +#if 0 if (!doc->okToCopy()) { } - +#endif + // construct text file name if (argc == 3) { |
はじめてみたかも(oom-killer) (2007/01/10(Wed) 18:37:15 )-(2007/01/11(Thu) 20:23:24 )oom-killer が動くのを見てしまった。見たくないけど... 以下、雑談。 要するに問題は、 1. linux カーネルでは malloc が成功した場合、その領域が必ずしも全部使えるとは限らない。というか、"確保しても全部使わないでしょ" みたいなノリがあるようだ。 2. この実装を補填するかたちで、OOM-Killer が実装されているかな?で、malloc でメモリ不足が発生した場合、適当な(かどうかはわからないけど)プロセスを殺してメモリを確保しようとする。これにより、カーネル自体が死んでしまうことを避けようとしている。殺すプロセスは、もっとも最近起動したとか、メモリをいっぱい使っているとかが選択基準。 であり、解決策として考えられるのは、 1. OOM-killer の対象からプロセスを除外する。 |
| # echo -17 > /proc/〈プロセスID〉/oom_adj |
|
-> 代わりに犠牲になるプロセスが出る。 2. malloc で楽観的なメモリ確保(over commit)をしないようにする。 |
|
# echo 99 > /proc/sys/vm/overcommit_ratio # echo 2 > /proc/sys/vm/overcommit_memory |
|
-> これでダメな場合、元々メモリ不足? 3. 常に、いくらかのメモリを空けておくようにする。 |
| # echo キロバイト > /proc/sys/vm/min_free_kbytes |
|
キロバイトのデフォルト値はメモリの容量によって決まる -> 忙しくなったときに確保が間に合うかは不明。 以下根拠無し。 ・てきとうな容量のRAMディスクを確保して、そこを swap 領域として使うなどすると、瞬間的なメモリ不足は回避できるかもしれない。 もしこれで駄目なら、malloc(もしくは変数宣言) を初期化段階で行ってしまい、動的に確保するのをやめる。 とか? |
fbcon でカーソルを絶対に表示したくない ( 2006/12/14(Thu) 17:36:13 )備忘録:fbcon でカーソルを絶対に表示したくないlinux/drivers/video/fbcon.c の fbcon_cursor() で、 いきなり return; かな。 |
|
|