トップ 最新 追記
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2007年03月02日

CAT760

IRL0, IRL1 の割り込みを有効にするには
arch/sh/boards/cat/setup760.c
  /* CF SOCKET 0,1 */
  make_ipr_irq(2, INTC_IPRD,3,2);    //     IRL0  追加
  make_ipr_irq(5, INTC_IPRD,2,2);    //     IRL1  追加
  make_ipr_irq(8, INTC_IPRD,1,2);    // CF0 IRL2
  make_ipr_irq(11,INTC_IPRD,0,2);    // CF1 IRL3
}

天和(てんほう)

なんとなくWikipediaを眺めていたら、麻雀で天和で上がれる確率は30万分の一であると書いてあった。
http://ja.wikipedia.org/wiki/%E5%A4%A9%E5%92%8C_%28%E9%BA%BB%E9%9B%80%29
毎日5ハンチャン麻雀やってても27年に一度だそうな。そりゃやっぱ一生無理だな。

2007年03月07日

USB HCD (HostControlDriver)メモ

Linux-2.6 で USBのホスト側ドライバを作るときの主な関数とデータの流れ えびめも
  俺_urb_enqueue(*urb)
     URBを受け取ってキューに入れる
     送信関数をたたく
  送信関数()
     キューから取り出してUSB送受信(SETUP,IN,OUT,ISO,ACK,NACK ... etc)
  割り込み   (top half)
     要因に応じて仕事終わり関数()やら(トランザクションが続くなら)送信関数()をたたく
  俺_urb_dequeue(*urb)
     キューからURBを削除して 仕事終わり関数を呼ぶ
  仕事終わり関数()
     処理が終わったURBはusb_hcd_giveback_urb(*urb) で上に返して一仕事終わり
こんな感じで動いている模様(たぶん)。
EK760

struct urb

struct urb
{
    spinlock_t lock;
    void *hcpriv;                   /* HCDが使うプライベートデータ。 *hep を保存する */
    int bandwidth;                  /* bandwidth for INT/ISO request */
    atomic_t use_count;             /* concurrent submissions counter */
    u8 reject;                      /* submissions will fail */
    struct list_head urb_list;      
    struct usb_device *dev;         /* (in) pointer to associated device */
    unsigned int pipe;              /* 送受信の方向、転送タイプ、
                                       デバイス番号、エンドポイント番号 など*/
    int status;                     /* HCDが値を設定する
                           0         URB転送成功
                           -ENOENT       usb_kill_urb()呼び出しによって URBが停止した
                           -ECONNRESET   usb_unlink_urb()呼び出しによってURBがアンリンクされた
                           -EINPROGRESS  まだ処理中(BUG)
                           -EPROTO       時間内にハードウェアが応答しなかった
                           -EILSEQ       CRC不一致
                           -EPIPE        STALL
                           -ECOMM        受信オーバーフロー
                           -ENOSR        送信アンダーフロー
                           -EOVERFLOW    バブル発生
                           -EREMOTEIO    transfer_flag に URB_SHORT_NOT_OK フラグがセットされていて
                                         受信したデータが指示より少なかった
                           -ENODEV       デバイスが無い
                           -EXDEV        ISOにて部分的にしか送受信できなかった
                           -EINVAL       ログオフして帰宅すること
                           -ESHUTDOWN    hcdにバグがあって無効化された */
    unsigned int transfer_flags;    /* トランスファフラグ */
    void *transfer_buffer;          /* 送受信データが置かれているバッファ */
    dma_addr_t transfer_dma;        /* 同上 DMA */
    int transfer_buffer_length;     /* 同上 バッファのバイト数 */
    int actual_length;              /* 実際に送信、受信したバイト数 */
    unsigned char *setup_packet;    /* コントロール伝送におけるセットアップパケット
                                       転送バッファのデータに先立って送信される  */
    dma_addr_t setup_dma;           /* 同上 DMA  */
    int start_frame;                /* ISO スタートフレーム番号 */
    int number_of_packets;          /* ISOパケット数 */
    int interval;                   /* INT,ISO のポーリング間隔(単位はフレーム) */
    int error_count;                /* (return) number of ISO errors */
    usb_complete_t complete;        /* 完了コールバック関数ハンドラ */
    void *context;                  /* 同上 引数 */
    struct usb_iso_packet_descriptor iso_frame_desc[0];   /* (in) ISO ONLY */
};

やはり、絶景というのは見下ろすものなのだろうか

アストロアーツ:土星探査機カッシーニ 昇りつめてとらえたリングの絶景
すげーなー。北極のすっんごい高いところから見下ろしてるんだろうな。幼い頃に小さな望遠鏡で土星を見せてもらって、クリーム色をした土星にちゃんと輪が見えたときに感動というか畏怖に近い思いをしたのだけど、見慣れた土星の形と全然違うんだな。人類が始めて目にするってこういうことか。遠い空のかなたでこんな写真が撮られているのか。すごいな。

2007年03月12日

OHCI-hcd

うまくいく場合のメモ
supercat:~# modprobe ohci-hcd
sh7760-ohci: 2005 April 22 USB 1.1 'Open' Host Controller (OHCI) Driver (SH7760)
sh7760-ohci: block sizes: ed 64 td 64
sh7760-ohci: initializing SH7760 USB Controller
sh7760-ohci sh7760-ohci.0: SH7760 OHCI
sh7760-ohci sh7760-ohci.0: new USB bus registered, assigned bus number 1
sh7760-ohci sh7760-ohci.0: irq 64, io mem 0xfe340000
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
supercat:~# usb 1-1: new full speed USB device using sh7760-ohci and address 2
scsi0 : SCSI emulation for USB Mass Storage devices
  Vendor: USB       Model: Flash Memory:     Rev: 0.00
  Type:   Direct-Access                      ANSI SCSI revision: 02
SCSI device sda: 2007040 512-byte hdwr sectors (1028 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
SCSI device sda: 2007040 512-byte hdwr sectors (1028 MB)
sda: Write Protect is off
sda: assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: Attached scsi removable disk sda
うまくいかない場合
usb 1-1: config 1 has an invalid descriptor of length 1, skipping remainder of the config
usb 1-1: config 1 has 0 interfaces, different from the descriptor's value: 1

2007年03月13日

なぞのUNIXコマンド

Oさんの日記経由で知った。内閣総理大臣の公式サイトの背景になぞのUNIXコマンドが。本人のサイトなのか、いたずらサイトなのか、ざっと見たところどうやら本人のサイトのようだ。
肖像権の問題もあるだろーからネタの場所だけコピペ

http://www.s-abe.or.jp/
# ps -aux
# df
# du -h
# free- tk
# netstat -r
# less /etc/crontab
# chkconfig --list
# l
rm * -r とか書いてあって自民党をぶっ壊すとか書いてあればウケが狙えたんだけど、害の無いコマンドが羅列されてる。害のなさそうなイメージが本人のイメージ戦略どおりなのか(?)。
以前はこういう場面て意味なくC言語のソースコードとか貼ってあったりしたよね。sched.c なんてデザイン的にかっこいいと思う。もちろんTABは8文字。

2007年03月14日

こういう時代

ちょっと前の話だ。郵便局に小包の集荷を頼んだことがあった。普段はクロネコさんが毎日やってきてくれるのだけど、その日は理由は忘れたけど郵便局にお願いすることになった。郵便局の小包の伝票はもっていないから、伝票も持ってきてくれと頼んだ。

夕方になって現れた郵便局員は、孫がいてもおかしくないような熟年男性だった。部長さんくらいの年齢の方に、丁寧な言葉遣いをされてこちらが恐縮してしまったのは事実だけれど、残念ながらその方は伝票を持ってこずに手ぶらでやってきたのだ。伝票が無いと住所がかけませんね。その方は恐縮しながら伝票を取りに一旦戻った。

30分くらいしたあとに、今度は伝票を持って再び集荷に訪れた。けれど持ってきた伝票は1枚だけ。佐川だったら差出人の欄が印刷済みの伝票を100枚くらい持ってきて、これを置かせてくれというだろう。その時点で、正直言って競争意識、プロ意識に欠ける人だなという印象をもった。しかしその後にまだ問題は続いたのだ。

住所を書き終わって料金を支払おうとしたとき、今度は送料を確かめるために携帯電話で局に電話をかけ始めたのだ。料金表いちまい持ってれば済む話じゃないの。コスト意識は?だんだんと不満がつのり始めた。

さらに追い討ちをかけるのは、こちらも小銭がなくて悪かったかもしれないけれど、お釣りがなかったのだ。「お釣りの無いように用意してもらいたかったんですが・・・」とその方が言う。だって、料金もあなただって分からないのに、お釣りの無いようにって、それは無理ですよね?といったところ、そうですよね。わかりました、明日集金にまた来ます。そのときにお願いします。というのだ。

一個荷物を出すために3回出直すというのはどういうコスト意識なんだろうかと疑問に思った。サービスというものをなんと心得ているのかと。商売をしていると、他人の粗はよく見えてしまう。えーと、もちろん自分のことは棚にあげてデス(~.~;;(ごめんなさい)。

それから1年くらいは、だからダメなんだんよ、民間に勝てないんだよ、と否定的に思っていたのだけど、あるときにふと思いついてしまったのだ。我々はこういう時代に生きているんじゃないかと。

定年後の余剰人材に仕事を斡旋するために(人々が食べていくために)、郵便局はある程度の社会福祉の役割として、熟年労働者を雇用しているのではないか。そして彼らは「いわゆるプロ」ではないので、多少手際が悪くても仕方が無いのではないか。いわゆるプロではない人材の社会雇用は郵便局だけにとどまらず、コンビニ、ガソリンスタンド、組み立て、配達、販売など、社会基盤を形成するあらゆる産業で進んでいくではないかと。それはそうだろう。少子化で若手の労働力が不足していけば、必然的にまだ働ける人に働いてもらうしかなくなる。

そしてそこへ、自分の将来を投影してしまった。年金を払ってくれる働き盛りの人口が増えなければ、自分の食い口は自分で確保しなければならないだろう。そして自分らもいつか今の仕事ができなくなって、軽作業しかできなくなる。そんなとき、若い人からきっとこう言われるのだ。「おっさん、それでもプロかよ。プロ失格じゃねーの?」

熟年の労働者の方々が多少手際が悪くても温かく見守っていきましょう。「ご苦労様です」「お疲れ様です」。自分もいつかその立場になるんだろうなと。

我々はこういう時代に生きているんだと認識してしまった。


2007年03月15日

都知事選

15日の報道ステーションで立候補者4人のガチンコ対決をやっていた。限られた時間内で限られた発言しかできないことは予想されるが、だからこそ他者に対して抜きん出た人物の勝ちとなる。私は都知事選の有権者ではないが、興味深く見ていた。

現職石原に対して挑戦者3人。守る方と攻める方の対決だ。攻めるほうは簡単だ。「あの赤字はどうなってるんだ?」などと詰め寄ればよい。自分は「まだ」何も失敗をしていないのだから攻められる弱みが無い。株主総会でも同じだけれど、守るほうが難しいからこそ、リーダーシップやカリスマ性を見ることができる。

注目のTV対決だが、本日の対決では残念ながら石原にカリスマ性は垣間見れなかった。残念なことに、昭和ノスタルジーに浸るただのおっちゃんにしか見れなかった。一方で黒川は態度が悪く、日本の首都を任せる人物としては品性に疑問を感じた。浅野は限られた時間の中で視聴者に対してパフォーマンスを見せることができなかった。そんな中で吉田は元足立区長という立場もあってか、都民のための都政を押し出し地方自治体の長としての考えを明確に述べていた。本日のTV対決に勝敗をつけるとしたら吉田の勝ちであろう。


2007年03月16日

格差社会

格差社会何が悪い。努力したものが勝つ。競争原理こそが社会を活性化させ、進歩を加速するのだ。

最近そんな風潮が目立つ。私も競争社会の中で商売をしているのだから、競争こそが進歩であり競争を否定する(例えば談合)とその社会の「外」からはどんどん遅れてしまうということは良く分かる。これから次の世代、21世紀のグローバル社会において、国際競争力が今以上に必要となるなかで、日本という国の勢いをこれ以上衰えさせてはいけないと多くの人が思っているだろう。

そこで競争の原理と格差社会について考えてみる。

事実としてお金というのはヤルキを引き出すために便利なツールである。もちろん私は無欲でお金はいりませんとか、人一倍欲ばりだという人もいるだろう。ここで議論するのは世の中の大多数を占める「いわゆる普通の人」である。普通の人がどのように動くかを考える。行動経済学というやつだ。

普通の人はお給料が1割アップしたらうれしいと感じる。ヤルキも出るだろう。逆に1割ダウンしたら、モチベーションも下がる。がんばったご褒美として給料20万円の人が2万円アップだったらうれしいだろうし、40万円の人が4万円アップしたらやっぱりうれしいし、モチベーションがあがる。ところが、お金がこういうモチベーションアップ効果を発揮するには範囲というのがあって、人間というのは「現状と比較して」とらえてしまうのだ。例えば「君の給料を2倍だすよ」という誘いは文句は大変魅力的なのだけど、年俸10億円出すよ。というのと年俸20億円出すよ、というのではどっちでもいいかという気になってしまう。どちらも大金に違いないから、それだったら楽しそうなほうをやろう。となる。お金がツールとして効果を発揮しない領域だ。現に松坂が、もうそんなに要らん、と言ってしまっているよね。そういうことになる。

限られたお金をツールとして効果的に使って、人々のヤルキを持ち上げてみよう。10億円のご褒美を10,000人で分配するとして、1案として一番がんばった人が10億円を独占し、残りの9999人はもらえないのと、2案として100万円ずつ1000人にご褒美を出す案を考えてみる。1案だと、10億円もらった人は確かにうれしいのだけど、100万円もらえた場合に比べて一人で1000倍頑張れるかというと、きっとそうではない。2案だと100万円もらってうれしいx1000人であるから、1案より2案のほうが「うれしさの総合計」が大きくなる。1案で10億もらった人が、1000人分のヤルキをもつなら別だけど、きっとそいはならないだろう。

米国のような格差社会では事業に成功した人が100億円だの500億円だのの年収をかせいで、その一方で安い給料で不満を持ちながら働いている多くの人たちがいるわけだ。社会の「モチベーションの総合計」はあまり高くならない。てことは失速するってことだね。

競争の原理はもちろん大切で、頑張った人がそうでない人より得をするのは良いことである。しかし片寄った格差社会になると、社会全体のモチベーションの「総合計」は少なくなる方向に働くので、進歩は失速する。そうでない社会・国に対して国際競争力は劣っていく方向に進む。格差社会が進むことが、わが国が良い方向に進むとは考えにくい。


2007年03月28日

SH-Linux

カーネル2.6でのリアルタイム割り込み実験を行っている。カーネル2.4のときはなんとなく成功しつつあった。同じ課題でカーネル2.6で再挑戦してみる。
SR.IMASK=F で割り込み禁止、 SR.IMASK=0 で割り込み可能状態。それで SR.IMASK=8とするといつのまにか SR.IMASK=0になり、BUG_ON()で落ちてしまう問題がでた。
原因は、entry.S での restore_all で、 SR.IMASK の値を r6_bank1に戻す箇所にあった。sh-linuxでは r6_bank1 を現Global Interrupt Maskとして使っている(というか正確には現在はもう活用していない。過去に imask_irq.c で使っていた。現在は常にゼロ)。通常はr6_bank1は常にゼロなので、割り込みのリターンにて SR.IMASKは0に戻ってしまう。
restore_all:
        mov.l   @r15+, r0
        mov.l   @r15+, r1
        mov.l   @r15+, r2
        mov.l   @r15+, r3
        mov.l   @r15+, r4
        mov.l   @r15+, r5
        mov.l   @r15+, r6
        mov.l   @r15+, r7
        !
        stc     sr, r8
        mov.l   7f, r9
        or      r9, r8                  ! BL =1, レジスタバンク=1
        ldc     r8, sr                  ! here, change the register bank
        !
        mov.l   @r15+, r8
        mov.l   @r15+, r9
        mov.l   @r15+, r10
        mov.l   @r15+, r11
        mov.l   @r15+, r12
        mov.l   @r15+, r13
        mov.l   @r15+, r14
        mov.l   @r15+, k4               ! original stack pointer
        ldc.l   @r15+, spc
        lds.l   @r15+, pr
        mov.l   @r15+, k3               ! original SR  => k3
        ldc.l   @r15+, gbr
        lds.l   @r15+, mach
        lds.l   @r15+, macl
        add     #4, r15                 ! Skip syscall number
        !
        ! Calculate new SR value
        mov     k3, k2                  ! k3 (sr)  => k2
        mov.l   9f, k1                  ! ffffff0f => k1
        and     k1, k2                  ! k2 & k1  => k2
        !
        mov     k3, k0                  ! K3 (sr)  => k0 
        shlr2   k0                      ! k0 >>= 2      // 2bit右シフトすることで8bit即値比較できる
        and     #0x3c, k0               ! k0 &= 3c      // 結局 SR.IMASK == 0xF かどうかの比較
        cmp/eq  #0x3c, k0               ! if(k0 == 3c){
        bt/s    6f                      !     k0 <<= 2  // SR.IMASK == F だったらそのまま
         shll2  k0                      ! }else{
        mov     g_imask, k0             !    g_imask(r6) => k0  // SR.IMASKがF以外なら、r6(通常はゼロ)とする
        !                               ! }
6:      or      k0, k2                  ! k0 | k2 => k2
        ldc     k2, ssr                 ! k2 => ssr
        !
        mov.l   @r15+, k2               ! restore EXPEVT
        mov     k4, r15
        rte
         nop
 
        .align  2
1:      .long   TRA
2:      .long   NR_syscalls
3:      .long   sys_call_table
4:      .long   do_syscall_trace
5:      .long   0x00001000      ! DSP
7:      .long   0x30000000
9:
__INV_IMASK:
        .long   0xffffff0f      ! ~(IMASK)

SH-Linux

割り込みからの復帰 restore_all で上記の r6_bank1 を SR.IMASK に書き込まなくするパッチ。これで SR.IMASK を任意に扱えるようになるはず
--- linux-2.6.15-cat/arch/sh/kernel/entry.S     2006-02-02 21:01:33.000000000 +0900
+++ linux-2.6.15-cat-rt/arch/sh/kernel/entry.S  2007-03-29 21:47:56.160604158 +0900
@@ -606,28 +606,30 @@
        ldc.l   @r15+, mod
 
        mov     k0, r2                  ! Restore r2
 skip_restore:
 #endif
        !
        ! Calculate new SR value
        mov     k3, k2                  ! original SR value
+#if 0     /* ---- EBIHARA DELETE ---- */
        mov.l   9f, k1
        and     k1, k2                  ! Mask orignal SR value
        !
        mov     k3, k0                  ! Calculate IMASK-bits
        shlr2   k0
        and     #0x3c, k0
        cmp/eq  #0x3c, k0
        bt/s    6f
         shll2  k0
        mov     g_imask, k0
        !
 6:     or      k0, k2                  ! Set the IMASK-bits
+#endif    /*----  EBIHARA DELETE END ---- */
        ldc     k2, ssr
        !
 #if defined(CONFIG_KGDB_NMI)
        ! Clear in_nmi
        mov.l   6f, k0
        mov     #0, k1
        mov.b   k1, @k0
 #endif

2007年03月29日

隕石落下

直径400kmの隕石が地球と衝突するとかなりやばいことになるらしい。(以前にNHKで見たのはもっとロングバージョンで、このあと生命がどのように生き残ったかを放送していた)

日本列島がめくりあがって木っ端微塵に粉砕されてしまう姿が印象的だ。悪夢だ。俺もあそこにいるんだ。ちっぽけな存在だ。

これが数億年に一度っていうなら諦めもつくし、俺が生きている間は大丈夫だろう。と思っていたら、
3月31日、地球近傍天体(NEO)2006 VV2が地球に最接近(アストロアーツ)
だって。安心できない。

パワーポイントが固まる

MSパワーポイントが固まってしまい昨日から困り果てていた。.ppt での提出が義務だったので仕事にならなかった。新規ファイルでも既存ファイルでも、1文字でも修正しようとすると固まる。office updateしてもアンインストール&再インストールしても直らなかった。諦めかけていたら修正方法を発見した。
http://blog.goo.ne.jp/kazuyossan/e/6a9c4749133b0ea3d4275185d39cda06
要約:IMEのユーザー辞書ファイルが壊れて修正も効かないので新規ファイルにする
これ発見したこの人すごい。直った。感謝感謝。