Mar 11, 1999 frc7v-cl1: Server Solaris 2.6、cc ドライバのテスト --- クライアントシステム上での cc ドライバのデバッグ#01(その8) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ (http://www-online.kek.jp/~inoue/CAMAC/onl8v1-sol2.6-serv/ Cli1-CAMAC/debug-step08.txt) 高エネルギー加速器研究機構 素粒子原子核研究所 物理、オンライングループ 井上 栄二 (1). 現状確認 (A). 株式会社ロジックハウスの白田様より SPARC CPU-8VT と、VMEドライバ v2.3.1 を借用した。 (B). 株式会社ロジックハウスの白田様より Server Solaris 2.6 のシステム がインストールされているハードディスクを借用した。 (C). 借用したハードディスクのサーバ側のシステム設定を変更して、KEK の FP クラスタ上で立ち上げた。 (D). ファイルを直接修正する方法で、クライアント(その1)側のシステム 設定を変更したがクライアントは立ち上がれなかった。 (E). Solsticeを起動してホストマネージャを使って、frc7v-cl1ディスクレス クライアントの設定をやり直した。 (F). ディスクレス・クライアントのシステム、frc7v-cl1 が起動できること を確認した。 (G). frc7v-cl1 のシステムにVMEドライバ、FRCvme-2.3.1 をインストールし、 その後、frc7v-cl1 のシステム設定をやり直した。 (H). Solsticeを起動してホストマネージャを使って、frc7v-cl2ディスクレス クライアントの設定をやり直した。 (I). ディスクレス・クライアントのシステム、frc7v-cl2 が起動できること を確認した。 (J). frc7v-cl1、クライアントのシステムに ccドライバをインストールした。 (K). frc7v-cl1、クライアントのシステム上でサンプル・プログラムを実行 シングルアクションの 24ビットread/write は ok. LAM割り込み処理は、ok. ブロック転送 read/write は NG. (L). CPU-7Vのボードで FRCvme2.3.1 が正しく動作できることを確認した。 (M). frc8vt、サーバ・システムに ccドライバをインストールした。 (N). frc8vt、サーバ・システム上でンプル・プログラムを実行 シングルアクションの 24ビットread/write は ok. LAM割り込み処理は、ok. ブロック転送 read/write は 16 および 24ビットとも、ok. (O). 株式会社ロジックハウスの高橋様の修正された ccドライバを実行したが 状況に変化はなかった。 (P). 株式会社ロジックハウスの白田様の提案より、デスクレス・クライアント のシステムにローカル・ディスクをつなぎ、マウントした後で ccドライバ を実行したが状況に変化はなかった。 (Q). cam2 プログラムを実行すると、 cc.cプログラム中のどの命令を実行 した時にパニックを起こすのか調べた。 (R). 株式会社ロジックハウスの高橋様の提案より、savecore について調べる。 savecoreコマンドにより、vmcore.x および unix.x ファイルを入手した。 (S). ドライバ・プログラムが DMA完了の待ち状態のままになっているのを       確認 (T). cam2プログラムを frc8vt、frc7v-cl1上で実行して結果を調べた。    frc8vt上での実行: (1). cv_wait_sig()コールが入っていると、そこで待ち状態が続く。 (2). cv_wait_sig()コールが入っていないと、正常終了する。    frc7v-cl1上での実行: (1). cv_wait_sig()コールが入っていると、そこで待ち状態が続く。 (U). cv_wait_sig() を while文でループさせることで、シグナルを受け取れた (2). ここでやるべきこと camac_b()ルーチンでパニックが起る件について調べる(継続) (3). physio()ルーチンを抜けた後で cv_wait_sig() を実行してみる 現在、cv_wait_sig()の実行を cc_strategy()ルーチンの中で行っている。 この位置を変更して、camac_b()の中のphysio()ルーチンを抜けた後に置いて みる。 cc.cファイルを修正する。 frc7v-cl1[40]% pwd /export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5 frc7v-cl1[41]% vi cc.c : static int cc_strategy(struct buf *bp) { register struct cc_device *cc = &ccdevice[0]; register struct K_REG *k = cc->k; register u_long dma_addr; register mode = cc->mode; register naf = cc->naf; register int wc = (mode & CC_BIT16) ? cc->len : cc->len * 2; register u_int flags; /* E.Inoue: from */ cmn_err(CE_NOTE," cc_strategy: debug step03. --- enter cc_strategy()"); /* E.Inoue: end */ /* check DMA mode and set flags */ switch (cc->naf & 0x0018) { case 0x0000: /* CAMAC read */ /* E.Inoue: from */ cmn_err(CE_NOTE," cc_strategy: debug step04. --- found the camac read"); /* E.Inoue: end */ flags = DDI_DMA_READ; break; case 0x0010: /* CAMAC write */ flags = DDI_DMA_WRITE; break; default: cc->status = CC_STA_BLOCK_INVFUNC; return 0; } /* change logichouse */ /* setup DMA bufer */ if((ddi_dma_buf_bind_handle(cc->handle, bp , flags | DDI_DMA_CONSISTENT, DDI_DMA_SLEEP, (caddr_t)0, &cc->dma_cookie, &cc->ccount) != DDI_DMA_MAPPED)){ cmn_err(CE_WARN,"cc_strategy: ddi_dma_buf_bind_handle failed"); bp->b_flags |= B_ERROR; bp->b_error = EIO; return bp->b_flags; } /* if (ddi_dma_buf_setup(cc->dip, bp, flags, DDI_DMA_SLEEP, NULL, &dma_lim, &cc->handle) != DDI_DMA_MAPPED) { bp->b_error |= EIO; bp->b_flags |= B_ERROR; return bp->b_flags; } */ /* get a virtual address to hand to our device */ /* if (ddi_dma_htoc(cc->handle, NULL, &cc->dma_cookie) != DDI_SUCCESS) { bp->b_error |= EIO; bp->b_flags |= B_ERROR; return bp->b_flags; } */ /* end */ /* set up variables */ cc->bp = bp; dma_addr = cc->dma_cookie.dmac_address; /* count = cc->dma_cookie.dmac_size; */ /* E.Inoue: from */ cmn_err(CE_NOTE," cc_strategy: debug step04-1. --- dma_addr = 0x%x", dma_add r); /* E.Inoue: end */ /* */ /* uprintf("count in 32bit=%d\n", cc->dma_cookie.dmac_size); */ cmn_err(CE_NOTE,"count in 32bit=%d", cc->dma_cookie.dmac_size); /* */ cc->retlen = 0; /* k->csr = CC_RST; */ /* K2917 Reset */ if (cc->klist == CC_KLIST_NO) { k->cma = CC_CMA_INIT; /* Initialize memory pointer */ k->cmr = mode | (cc->cur_crate << 8); k->cmr = naf; k->cmr = -(cc->len & 0xFFFF); /* Max len = 1MWord */ k->cmr = 0xFFFF; k->cmr = CC_HALT; k->cma = CC_CMA_INIT; /* Reset memory pointer */ k->maclo = dma_addr & 0xFFFF; /* Set DMA base address */ k->machi = dma_addr >> 16; k->amr = CC_AMR_INIT; /* Set VME AM code */ k->mtc = wc; k->cser = CC_DMA_RESET; /* DMA reset */ switch (cc->naf & 0x0018) { case 0x0000: /* CAMAC read */ k->docr = CC_DOCR_INIT | CC_DMA_READ; k->sccr = CC_DMA_START; k->csr |= CC_DMA; /* DMA mode */ k->csr &= ~CC_WRITE; break; case 0x0010: /* CAMAC write */ k->docr = CC_DOCR_INIT | CC_DMA_WRITE; k->sccr = CC_DMA_START; k->csr |= CC_DMA; /* DMA mode */ k->csr |= CC_WRITE; break; default: /* ERROR */ cc->status = CC_STA_BLOCK_INVFUNC; return 0; } } /* Kinetic list-processing */ else { k->cma = now_cma; /* Initialize memory pointer */ k->maclo = dma_addr & 0xFFFF; /* Set DMA base address */ k->machi = dma_addr >> 16; k->amr = CC_AMR_INIT; /* Set VME AM code */ k->mtc = now_wc; k->cser = CC_DMA_RESET; /* DMA reset */ k->docr = CC_DOCR_INIT | CC_DMA_READ; k->sccr = CC_DMA_START; k->csr |= CC_DMA; /* DMA mode */ k->csr &= ~CC_WRITE; } /* E.Inoue: from */ cmn_err(CE_NOTE," cc_strategy: debug step05. --- start DMA"); /* E.Inoue: end */ /* start DMA */ cc->executing_dma_flag = 1; cc->timeout_id = timeout(cc_timeout, NULL, CC_TIMEOUT_DMA * hz); k->csr |= CC_GO; /* Go! */ k->donc = CC_INT_AUTO_CLEAR | CC_INT_ENABLE | intrpri; /* E.Inoue: from */ cmn_err(CE_NOTE," cc_strategy: debug step07. --- return DMA"); /* E.Inoue: end */ /* wait at physio() */ /* E.Inoue: from */ /* mutex_enter(&cc->mutex); */ /* start MUTEX */ /* E.Inoue: from */ /* cmn_err(CE_NOTE," cc_strategy: debug step07a. --- call cv_wait_sig()"); */ /* E.Inoue: end */ /* cv_wait_sig(&cc->cv, &cc->mutex); */ /* E.Inoue: from */ /* cmn_err(CE_NOTE," cc_strategy: debug step07b. --- return cv_wait_sig()"); */ /* E.Inoue: end */ /* while (cc->executing_dma_flag){ */ /* if (cv_wait_sig(&cc->cv, &cc->mutex) == 0) { */ /* untimeout(cc->timeout_id); */ /* mutex_exit(&cc->mutex); */ /* end MUTEX */ /* return EINTR; */ /* } */ /* } */ /* E.Inoue: from */ /* mutex_exit(&cc->mutex); */ /* end MUTEX */ /* E.Inoue: end */ return 0; } static int camac_b(struct cc_device *cc, u_short mode, u_short naf, int len, int *retlen) { register dev_t dev = cc->dev; register struct K_REG *k = cc->k; register struct uio *uio = cc->uio; /* E.Inoue: from cmn_err(CE_NOTE," camac_b: debug step01. --- enter camac_b()"); E.Inoue: end */ cc->klist = CC_KLIST_NO; cc->mode = mode; cc->naf = naf; cc->len = len; /* set uio for DMA */ uio->uio_iov->iov_base = (caddr_t)cc->ptr_udata; uio->uio_iov->iov_len = (mode & CC_BIT16) ? len * 2: len * 4; uio->uio_iovcnt = 1; uio->uio_segflg = UIO_USERSPACE; uio->uio_offset = 0; /* */ /* uprintf(" in: 0x%x %d %d %d %d %d\n", uio->uio_iov->iov_base, uio->uio_iov->iov_len, uio->uio_iovcnt, uio->uio_resid, uio->uio_segflg, uio->uio_offset); */ /* cmn_err(CE_NOTE," in: 0x%x %d %d %d %d %d", uio->uio_iov->iov_base, uio->uio_iov->iov_len, uio->uio_iovcnt, uio->uio_resid, uio->uio_segflg, uio->uio_offset); */ /* */ /* execute DMA transfer */ switch (cc->naf & 0x0018) { case 0x0000: /* CAMAC read */ /* E.Inoue: from cmn_err(CE_NOTE," camac_b: debug step02. --- call physio()"); E.Inoue: end */ physio(cc_strategy, NULL, dev, B_READ, cc_minphys, uio); /* E.Inoue: from cmn_err(CE_NOTE," camac_b: debug step07. --- return physio()"); E.Inoue: end */ break; case 0x0010: /* CAMAC write */ physio(cc_strategy, NULL, dev, B_WRITE, cc_minphys, uio); break; default: cc->status = CC_STA_BLOCK_INVFUNC; return 0; } /* E.Inoue: from */ mutex_enter(&cc->mutex); /* start MUTEX */ /* E.Inoue: from */ k->donc = CC_INT_AUTO_CLEAR | intrpri; cc->camac_qx = k->csr; cc_sys_status = cc->bp->b_error; while (cc->executing_dma_flag){ if (cv_wait_sig(&cc->cv, &cc->mutex) == 0) { /* untimeout(cc->timeout_id); */ /* mutex_exit(&cc->mutex); */ /* end MUTEX */ /* return EINTR; */ } } /* E.Inoue: from cmn_err(CE_NOTE," camac_b: debug step08. --- cc_sys_status = 0x%x", cc_sys_s tatus); E.Inoue: end */ /* check timeout */ if (cc->interrupt & CC_INT_TIMEOUT ) { cc->interrupt &= ~CC_INT_TIMEOUT; cc->status = CC_STA_BLOCK_TIMEOUT; *retlen = 0; return cc->status; } /* */ /* uprintf("out: %d %d %d %d %d\n", uio->uio_iov->iov_len, uio->uio_iovcnt, uio->uio_resid, uio->uio_segflg, uio->uio_offset); */ /* cmn_err(CE_NOTE,"out: %d %d %d %d %d", uio->uio_iov->iov_len, uio->uio_iovcnt, uio->uio_resid, uio->uio_segflg, uio->uio_offset); */ /* */ /* Q-STOP mode or no error */ if ((mode & CC_QSCAN) == 0 || (k->csr & CC_ERR) == 0) { if ((mode & CC_BIT16) == 0) { cc->retlen = cc->len - k->mtc / 2; /* retlen=number of transfer */ if ((mode & CC_QSCAN) == 0 && (k->csr & CC_ERR) != 0) /* Q-STOP */ cc->retlen = cc->retlen - 2; /* delete the data of Q=0 */ cc->ptr_udata += cc->retlen * 2; /* ptr(2bytes),retlen(4bytes) */ cc->len_udata += cc->retlen * 2; } else { cc->retlen = cc->len - k->mtc; if ((mode & CC_QSCAN) == 0 && (k->csr & CC_ERR) != 0) /* Q-STOP */ cc->retlen--; /* delete the data of Q=0 */ cc->ptr_udata += cc->retlen; /* ptr(2bytes),retlen(2bytes) */ cc->len_udata += cc->retlen; } } /* E.Inoue: from cmn_err(CE_NOTE," camac_b: debug step09. --- return"); E.Inoue: end */ /* E.Inoue: from */ mutex_exit(&cc->mutex); /* end MUTEX */ /* E.Inoue: end */ /* return */ *retlen = cc->retlen; return cc->status; } "cc.c" 2807 lines, 69857 characters frc7v-cl1[42]% cc.cファイルをコンパイルする。 frc7v-cl1[42]% make ./script/cc_build.sh [Building for sun4m] rm -f cc.o frc7v-cl1[43]% cc および cc.confファイルをコピーする。 frc8vt# pwd /usr/kernel/drv frc8vt# ls -l cc* -rwxr-xr-x 1 root sys 56500 Mar 11 16:35 cc* -rwxr-xr-x 1 root sys 288 Mar 11 16:35 cc.conf* frc8vt# rcp frc7v-cl1:/export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5/cc . frc8vt# rcp frc7v-cl1:/export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5/cc.conf . frc8vt# ls -l cc* -rwxr-xr-x 1 root sys 56224 Mar 12 09:47 cc* -rwxr-xr-x 1 root sys 288 Mar 12 09:47 cc.conf* frc8vt# ccドライバをロードし直す。 frc7v-cl1# pwd /export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5 frc7v-cl1# make unload ./script/cc_unload.sh [Removing CAMAC device driver] [Removing CAMAC device driver from system] [Deleting CAMAC device files] frc7v-cl1# make load ./script/cc_load.sh [Installing CAMAC device driver] cp: cannot create /usr/kernel/drv/cc: Read-only file system cp: cannot create /usr/kernel/drv/cc.conf: Read-only file system [Adding CAMAC device driver to system] [Configuring CAMAC device driver] [Making CAMAC device files] frc7v-cl1# ls -l /dev/cc lrwxrwxrwx 1 root other 69 Mar 12 1999 /dev/cc -> /devices/iommu@0,10000000/sbus@0,10001000/VME@5,ffffe00/cc@2d,ff00:cc frc7v-cl1# cam2プログラムを実行。 frc7v-cl1[40]% pwd /export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5 frc7v-cl1[41]% cam2 Input transfer mode (1:word 2:long word) >1 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 0 cam2プログラムはここでフリーズした。 システムはパニックを起こしてリブートしてしまった。 NOTICE: BcAD trateTR: debug stApP3. :-- ente cc_sttypege(=9 NOTICE cc_strategp : deb=g stepf4. -c- 08un8 8he camac read NeTICE: cc_stratecy: aeddgrst=p0f-1. ---6dma_1dd42= fx3c5 NOcI E: count im 3muit=10 _OTfCE: ccsstrat=gy326ebu step05r --- stawt DMA =O1ICE cam2: Data fault kernel read fault at addr=0xf6142f5c, pme=0x0 MMU sfsr=326: Invalid Address on supv data fetch at level 3 pte addr = 0xf6039108, level = 3 wrong ctx/as ctx 0, as 0xf5914510 wrong ctx/as 2 ctx 0, as 0xc4 pid=508, pc=0xf60754dc, sp=0xfc088938, psr=0x44010c3, context=0 g1-g7: f5900000, f026f0bc, a00, c00, 200, 1, f5e43040 cc_intr:Bdeeuggsiepn6. t-- enter ac_cntre) baTICc: cc_kntr: .ebug st.p06a. --- cc->.nterrupt=0xe NOTIC s cp intr= d bug stepf6b.c-0-8cc8>e9ecuting_3ma8f aNllICE: cc_intr: debugdste 06d.f---raccepo m tfrrupt: 60tur6 cc_indr()d NdT0CE: cc,strat gy: debfg sp=pf7. -c- retu0n DMA 889a0, args=f5fc56c8 2a 600 fc088ad8 f60f7f00 f00000 Called from f00bd3ac, fp=fc088a70, args=f00000 5 600 2a fc088b08 f5fc56c8 Called from f0068900, fp=fc088b80, args=f593ab80 f5c8883c 22 3 22 3 Called from 11f30, fp=effff8c0, args=1 600 3f53c0 5 24a70 24a80 End traceback... panic: Data fault syncing file systems... 2 done 2791 static and sysmap kernel pages 100 dynamic kernel data pages 488 kernel-pageable pages 0 segkmap kernel pages 0 segvn kernel pages 287 current user process pages 3666 total pages (3666 chunks) dumping to vp f59444dc, offset 138648 3666 total pages, dump succeeded rebooting... Resetting ... screen not found. Can't open input device. Keyboard not present. Using tty for input and output. SPARC CPU-7V, No Keyboard ROM Rev. 2.15.1, 64 MB memory installed, Serial #9157050. Ethernet address 0:80:42:b:49:ba, Host ID: 808bb9ba. apply failed. Initializing Memory - Type help for more information ok ok boot net -r Boot device: /iommu/sbus/ledma@5,8400010/le@5,8c00000 File and args: -r 2dc00 hostname: frc7v-cl1 domainname: kek.jp root server: frc8vt root directory: /export/root/frc7v-cl1 SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0] Copyright (c) 1983-1997, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: frc7v-cl1 Configuring the /devices directory FRCvme V2.3.1 VME Nexus (FGA-5000 FGA-5100) NOTICE: VME: slavewin at vme=0x0, size=0x100000 space=0x2d020617 CAMAC device driver V1.3x, 1991-1993 by Y.TAKEUCHI (T.I.T.) cc0 at VME0: vme16d16 0xff00 VME level 4 vector 0xff sparc ipl 7 vmemem0 at VME0: vme32d16 0x0 vmemem1 at VME0: vme16d16 0x0 vmemem2 at VME0: vme24d16 0x0 vmemem3 at VME0: vme32d32 0x0 vmemem4 at VME0: vme16d32 0x0 vmemem5 at VME0: vme24d32 0x0 vmeplus0 at VME0: vme16d16 0x0 and vme24d16 0x0 and vme32d16 0x0 and vme16d32 0x 0 and vme24d32 0x0 and vme32d32 0x0 and space 0x2f offset 0x0 and space 0x6f offset 0x0 and space 0x10 offset 0x0 and space 0x11 offset 0x0 and space 0x50 offset 0x0 and space 0x51 offset 0x0 vmedma0 at VME0 vmefdma0 at VME0 vmedvma0 at VME0 vmectl0 at VME0 Configuring the /dev directory Configuring the /dev directory (compatibility devices) The system is coming up. Please wait. checking for crash dump...System went down at Fri Mar 12 09:44:47 1999 Saving 3666 pages of image in vmcore.23 3666 pages saved. Processing modules: Done. Constructing Namelist file: /var/crash/frc7v-cl1/unix.23 Namelist file complete. default ICCFP1.kek.jp done add net default: gateway ICCFP1 NIS domainname is kek.jp starting rpc services: rpcbind keyserv done. Setting netmask of le0 to 255.255.252.0 Setting default interface for multicast: add net 224.0.0.0: gateway frc7v-cl1 "/dev/swap" is not valid for swapping. It must be a block device or a regular file with the "save user text on execution" bit set. syslog service starting. syslogd: line 24: unexpected getnetconfig failure Print services started. volume management starting. Wnn6: Key License Server started.... Nihongo Multi Client Server (Wnn6 R2.30) Finished Reading Files The system is ready. frc7v-cl1 console login: システムは正常に立ち上がった。 frc7v-cl1システムのホームディレクトリをマウントする。 onlsun1[89]% !! rlogin frc7v-cl1 Password: No directory! Logging in with home=/ Last login: Fri Mar 12 09:16:57 from onlsun1.kek.jp Sun Microsystems Inc. SunOS 5.6 Generic August 1997 frc7v-cl1% su Password: # mount frc8vt:/export/home/frc8vt /export/home/frc7v-cl1 # frc7v-cl1% logout Connection closed. onlsun1[90]% !! rlogin frc7v-cl1 Last login: Fri Mar 12 09:54:27 from onlsun1.kek.jp Sun Microsystems Inc. SunOS 5.6 Generic August 1997 frc7v-cl1[33]% ls -l total 8 drwxr-xr-x 3 inoue staff 512 Feb 9 15:34 CAMAC/ drwxr-xr-x 3 inoue staff 512 Nov 6 11:07 FORCE/ drwxr-xr-x 2 inoue staff 512 Feb 18 10:29 Ktaka/ -rw------- 1 inoue staff 592 Feb 26 16:49 mbox frc7v-cl1[34]% 先のクラッシュ・ダンプ・ファイルをチェック。 frc7v-cl1[45]% adb -k unix.23 vmcore.23 physmem 3e2d $c complete_panic(0x0,0x4401ce6,0x0,0x44010e6,0x0,0xf00) + 5c do_panic(0x1,0xfc08879c,0x0,0x48010e6,0x1,0xf5bcda00) + a8 vcmn_err(0x3,0xf0269878,0xfc08879c,0x3,0xffeec000,0x0) + 180 cmn_err(0x3,0xf0269878,0xfc089,0x53,0x53,0xf025e400) + 1c die(0x9,0xfc0888ec,0xf6142f5c,0x326,0x1,0xf0269878) + bc trap(0x0,0xfc0888ec,0xf0000000,0x0,0x6,0x1) + 930 fault(?) + 84 mutex_enter(0xf5fc5738,0x0,0xffaf2182,0x40,0xf5914510,0xfc088ad8) camac_b(0xf5fc56c8,0x2a,0x600,0xfc088ad8,0xf60f7f00,0xf00000) + 1f8 cc_write(0xf00000,0x5,0x600,0x2a,0xfc088b08,0xf5fc56c8) + 3f0 writev(0xf593ab80) + 2b0 $q frc7v-cl1[46]% camac_b()ルーチン中の mutex_enter() でエラー。 cc.cファイルを修正する。 frc7v-cl1[38]% vi cc.c : static int camac_b(struct cc_device *cc, u_short mode, u_short naf, int len, int *retlen) { register dev_t dev = cc->dev; register struct K_REG *k = cc->k; register struct uio *uio = cc->uio; /* E.Inoue: from */ cmn_err(CE_NOTE," camac_b: debug step01. --- enter camac_b()"); /* E.Inoue: end */ cc->klist = CC_KLIST_NO; cc->mode = mode; cc->naf = naf; cc->len = len; /* set uio for DMA */ uio->uio_iov->iov_base = (caddr_t)cc->ptr_udata; uio->uio_iov->iov_len = (mode & CC_BIT16) ? len * 2: len * 4; uio->uio_iovcnt = 1; uio->uio_segflg = UIO_USERSPACE; uio->uio_offset = 0; /* */ /* uprintf(" in: 0x%x %d %d %d %d %d\n", uio->uio_iov->iov_base, uio->uio_iov->iov_len, uio->uio_iovcnt, uio->uio_resid, uio->uio_segflg, uio->uio_offset); */ cmn_err(CE_NOTE," in: 0x%x %d %d %d %d %d", uio->uio_iov->iov_base, uio->uio_iov->iov_len, uio->uio_iovcnt, uio->uio_resid, uio->uio_segflg, uio->uio_offset); /* */ /* execute DMA transfer */ switch (cc->naf & 0x0018) { case 0x0000: /* CAMAC read */ /* E.Inoue: from */ cmn_err(CE_NOTE," camac_b: debug step02. --- call physio()"); /* E.Inoue: end */ physio(cc_strategy, NULL, dev, B_READ, cc_minphys, uio); /* E.Inoue: from */ cmn_err(CE_NOTE," camac_b: debug step07. --- return physio()"); /* E.Inoue: end */ break; case 0x0010: /* CAMAC write */ physio(cc_strategy, NULL, dev, B_WRITE, cc_minphys, uio); break; default: cc->status = CC_STA_BLOCK_INVFUNC; return 0; } k->donc = CC_INT_AUTO_CLEAR | intrpri; cc->camac_qx = k->csr; cc_sys_status = cc->bp->b_error; /* E.Inoue: from */ mutex_enter(&cc->mutex); /* start MUTEX */ /* E.Inoue: from */ /* while (cc->executing_dma_flag){ */ if (cv_wait_sig(&cc->cv, &cc->mutex) == 0) { /* untimeout(cc->timeout_id); */ /* mutex_exit(&cc->mutex); */ /* end MUTEX */ /* return EINTR; */ } /* } */ /* E.Inoue: from */ cmn_err(CE_NOTE," camac_b: debug step08. --- cc_sys_status = 0x%x", cc_sys_s tatus); /* E.Inoue: end */ /* check timeout */ if (cc->interrupt & CC_INT_TIMEOUT ) { cc->interrupt &= ~CC_INT_TIMEOUT; cc->status = CC_STA_BLOCK_TIMEOUT; *retlen = 0; return cc->status; } /* */ /* uprintf("out: %d %d %d %d %d\n", uio->uio_iov->iov_len, uio->uio_iovcnt, uio->uio_resid, uio->uio_segflg, uio->uio_offset); */ cmn_err(CE_NOTE,"out: %d %d %d %d %d", uio->uio_iov->iov_len, uio->uio_iovcnt, uio->uio_resid, uio->uio_segflg, uio->uio_offset); /* */ /* Q-STOP mode or no error */ if ((mode & CC_QSCAN) == 0 || (k->csr & CC_ERR) == 0) { if ((mode & CC_BIT16) == 0) { cc->retlen = cc->len - k->mtc / 2; /* retlen=number of transfer */ if ((mode & CC_QSCAN) == 0 && (k->csr & CC_ERR) != 0) /* Q-STOP */ cc->retlen = cc->retlen - 2; /* delete the data of Q=0 */ cc->ptr_udata += cc->retlen * 2; /* ptr(2bytes),retlen(4bytes) */ cc->len_udata += cc->retlen * 2; } else { cc->retlen = cc->len - k->mtc; if ((mode & CC_QSCAN) == 0 && (k->csr & CC_ERR) != 0) /* Q-STOP */ cc->retlen--; /* delete the data of Q=0 */ cc->ptr_udata += cc->retlen; /* ptr(2bytes),retlen(2bytes) */ cc->len_udata += cc->retlen; } } /* E.Inoue: from */ cmn_err(CE_NOTE," camac_b: debug step09. --- return"); /* E.Inoue: end */ /* E.Inoue: from */ mutex_exit(&cc->mutex); /* end MUTEX */ /* E.Inoue: end */ /* return */ *retlen = cc->retlen; return cc->status; } "cc.c" 2807 lines, 69880 characters frc7v-cl1[39]% cam2プログラムをコンパイル。 frc7v-cl1[39]% make ./script/cc_build.sh [Building for sun4m] rm -f cc.o frc7v-cl1[40]% cc および cc.confファイルをコピー。 frc8vt# pwd /usr/kernel/drv frc8vt# ls -l cc* -rwxr-xr-x 1 root sys 56224 Mar 12 09:47 cc* -rwxr-xr-x 1 root sys 288 Mar 12 09:47 cc.conf* frc8vt# rcp frc7v-cl1:/export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5/ cc . frc8vt# rcp frc7v-cl1:/export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5/ cc.conf . frc8vt# ls -l cc* -rwxr-xr-x 1 root sys 57080 Mar 12 10:15 cc* -rwxr-xr-x 1 root sys 288 Mar 12 10:16 cc.conf* frc8vt# ccドライバをロードしなおす。 frc7v-cl1# make unload ./script/cc_unload.sh [Removing CAMAC device driver] [Removing CAMAC device driver from system] [Deleting CAMAC device files] frc7v-cl1# make load ./script/cc_load.sh [Installing CAMAC device driver] cp: cannot create /usr/kernel/drv/cc: Read-only file system cp: cannot create /usr/kernel/drv/cc.conf: Read-only file system [Adding CAMAC device driver to system] [Configuring CAMAC device driver] [Making CAMAC device files] frc7v-cl1# ls -l /dev/cc lrwxrwxrwx 1 root other 69 Mar 12 1999 /dev/cc -> /devices/iommu@ 0,10000000/sbus@0,10001000/VME@5,ffffe00/cc@2d,ff00:cc frc7v-cl1# cam2プログラムを実行。 frc7v-cl1[56]% pwd /export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5 frc7v-cl1[57]% cam2 Input transfer mode (1:word 2:long word) >1 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 0 cam2プログラムはここでフリーズした。 システムはパニックを起こしてリブートしてしまった。 Mar 12 10:10:23 frc7v-cl1 su: 'su root' succeeded for inoue on /dev/pts/0 CAMAC device driver V1.3x, 1991-1993 by Y.TAKEUCHI (T.I.T.) cc0 at VME0: vme16d16 0xff00 VME level 4 vector 0xff sparc ipl 7 NOTICE: caBacAD: debug step01T --- eRteAPc:mac bt)y NpTIe=:9 in: xrp5=c0 f0 1 b 4 0 0 NOTICE:f 89m8c_b: e4bug tep02. --- cala physid()drN=TIf6: cc_s0rat6gy:fdf5ugcs t p03.m--m eu_ef cc_stra=e3y() - found cc_6trategy drwug step04=1- cam2: Data fault kernel read fault at addr=0xf606ff5c, pme=0x0 MMU sfsr=326: Invalid Address on supv data fetch at level 3 pte addr = 0xf5f7a4bc, level = 3 wrong ctx/as ctx 0, as 0xf5914790 wrong ctx/as 2 ctx 0, as 0x5b pid=454, pc=0xf613f588, sp=0xfbf89930, psr=0x44010c6, context=0 g1-g7: f026de48, 945f, f6024a78, c00, 200, 1, f5e609e0 theBcaegc iead NOTICEn cc_ tratetr:adebug step04-1ceb-a cma_addr = 0x3c0 kO..C. cospt in 32bit=10 tart=E: cc_s rfbegf:8debug 9tep93. --0 DMA NCTICEal cl_intr: eebd ftep06r om- enter cc iftr() NOTIC6: 13c7intr: dedug step06a. --d cc-0interrupt=, e NOTICEfp =cfintr: debug btep0fb.89-- cc->exe9utina0dma_fl,g ! a NOTICEr ccgsnt=:0de ug2stepa6d. - 6 a0cept interr0pt: retur ccfintr()b NOfIC8: 07. ICE:f c0mac_0: 00b0g ste7-- retuf0 DMA -- Ceturn phyaio()lled from f00bd3ac, fp=fbf89a70, args=f00000 5 600 2a fbf8 9b08 f5c82790 Called from f0068900, fp=fbf89b80, args=f5b19dd8 f5c83e14 22 3 22 3 Called from 11f30, fp=effff8c0, args=1 600 3f53c0 5 24a70 24a80 End traceback... panic: Data fault syncing file systems... 2 done 2801 static and sysmap kernel pages 98 dynamic kernel data pages 478 kernel-pageable pages 0 segkmap kernel pages 0 segvn kernel pages 287 current user process pages 3664 total pages (3664 chunks) dumping to vp f59444dc, offset 138664 3664 total pages, dump succeeded rebooting... Resetting ... screen not found. Can't open input device. Keyboard not present. Using tty for input and output. SPARC CPU-7V, No Keyboard ROM Rev. 2.15.1, 64 MB memory installed, Serial #9157050. Ethernet address 0:80:42:b:49:ba, Host ID: 808bb9ba. apply failed. Initializing Memory - Type help for more information ok ok boot net -r Boot device: /iommu/sbus/ledma@5,8400010/le@5,8c00000 File and args: -r 2dc00 hostname: frc7v-cl1 domainname: kek.jp root server: frc8vt root directory: /export/root/frc7v-cl1 SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0] Copyright (c) 1983-1997, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: frc7v-cl1 Configuring the /devices directory FRCvme V2.3.1 VME Nexus (FGA-5000 FGA-5100) NOTICE: VME: slavewin at vme=0x0, size=0x100000 space=0x2d020617 CAMAC device driver V1.3x, 1991-1993 by Y.TAKEUCHI (T.I.T.) cc0 at VME0: vme16d16 0xff00 VME level 4 vector 0xff sparc ipl 7 vmemem0 at VME0: vme32d16 0x0 vmemem1 at VME0: vme16d16 0x0 vmemem2 at VME0: vme24d16 0x0 vmemem3 at VME0: vme32d32 0x0 vmemem4 at VME0: vme16d32 0x0 vmemem5 at VME0: vme24d32 0x0 vmeplus0 at VME0: vme16d16 0x0 and vme24d16 0x0 and vme32d16 0x0 and vme16d32 0x 0 and vme24d32 0x0 and vme32d32 0x0 and space 0x2f offset 0x0 and space 0x6f offset 0x0 and space 0x10 offset 0x0 and space 0x11 offset 0x0 and space 0x50 offset 0x0 and space 0x51 offset 0x0 vmedma0 at VME0 vmefdma0 at VME0 vmedvma0 at VME0 vmectl0 at VME0 Configuring the /dev directory Configuring the /dev directory (compatibility devices) The system is coming up. Please wait. checking for crash dump...System went down at Fri Mar 12 10:12:17 1999 Saving 3664 pages of image in vmcore.24 3664 pages saved. Processing modules: Done. Constructing Namelist file: /var/crash/frc7v-cl1/unix.24 Namelist file complete. default ICCFP1.kek.jp done add net default: gateway ICCFP1 NIS domainname is kek.jp starting rpc services: rpcbind keyserv done. Setting netmask of le0 to 255.255.252.0 Setting default interface for multicast: add net 224.0.0.0: gateway frc7v-cl1 "/dev/swap" is not valid for swapping. It must be a block device or a regular file with the "save user text on execution" bit set. syslog service starting. syslogd: line 24: unexpected getnetconfig failure Print services started. volume management starting. Wnn6: Key License Server started.... Nihongo Multi Client Server (Wnn6 R2.30) Finished Reading Files The system is ready. frc7v-cl1 console login: システムは正常に立ち上がった。 frc7v-cl1システムのホームディレクトリをマウント。 onlsun1[91]% !! rlogin frc7v-cl1 Password: No directory! Logging in with home=/ Last login: Fri Mar 12 09:54:55 from onlsun1.kek.jp Sun Microsystems Inc. SunOS 5.6 Generic August 1997 frc7v-cl1% su Password: # mount frc8vt:/export/home/frc8vt /export/home/frc7v-cl1 # frc7v-cl1% logout Connection closed. onlsun1[92]% !! rlogin frc7v-cl1 Last login: Fri Mar 12 10:21:28 from onlsun1.kek.jp Sun Microsystems Inc. SunOS 5.6 Generic August 1997 frc7v-cl1[33]% ls -l total 8 drwxr-xr-x 3 inoue staff 512 Feb 9 15:34 CAMAC/ drwxr-xr-x 3 inoue staff 512 Nov 6 11:07 FORCE/ drwxr-xr-x 2 inoue staff 512 Feb 18 10:29 Ktaka/ -rw------- 1 inoue staff 592 Feb 26 16:49 mbox frc7v-cl1[34]% システム・クラッシュ・ダンプ・ファイルをチェック。 frc7v-cl1[36]% adb -k unix.24 vmcore.24 physmem 3e2d $c complete_panic(0x0,0x4401ce1,0x0,0x44010e1,0x0,0xf5ae8f40) + 5c do_panic(0x1,0xfbf89794,0x0,0x48010e1,0x8,0xf00) + a8 vcmn_err(0x3,0xf0269878,0xfbf89794,0x3,0xffeec000,0x0) + 180 cmn_err(0x3,0xf0269878,0xfbf8a,0x53,0x53,0xf025e400) + 1c die(0x9,0xfbf898e4,0xf606ff5c,0x326,0x1,0xf0269878) + bc trap(0x0,0xfbf898e4,0xf0000000,0x0,0x6,0x1) + 930 fault(?) + 84 cmn_err(0x1,0xf6140098,0xa,0x40,0xf5914790,0xfbf89ad8) camac_b(0x0,0x2a,0x600,0xfbf89ad8,0xf6067f00,0xf00000) + 208 cc_write(0xf00000,0x5,0x600,0x2a,0xfbf89b08,0xf5c82790) + 3f0 writev(0xf5b19dd8) + 2b0 $q frc7v-cl1[37]% メッセージ出力用の cmn_err()文でエラー。 cc.cファイルを修正。 cmn_err()文をコメントアウト。 frc7v-cl1[43]% vi cc.c : k->donc = CC_INT_AUTO_CLEAR | intrpri; cc->camac_qx = k->csr; cc_sys_status = cc->bp->b_error; /* E.Inoue: from cmn_err(CE_NOTE," camac_b: debug step08. --- cc_sys_status = 0x%x", cc_sys_s tatus); E.Inoue: end */ /* E.Inoue: from */ mutex_enter(&cc->mutex); /* start MUTEX */ /* E.Inoue: from */ /* while (cc->executing_dma_flag){ */ if (cv_wait_sig(&cc->cv, &cc->mutex) == 0) { /* untimeout(cc->timeout_id); */ /* mutex_exit(&cc->mutex); */ /* end MUTEX */ "cc.c" 2808 lines, 69877 characters frc7v-cl1[43]% cc.cファイルをコンパイルする。 frc7v-cl1[43]% make ./script/cc_build.sh [Building for sun4m] rm -f cc.o frc7v-cl1[44]% cc および cc.confファイルをコピーする。 frc8vt# pwd /usr/kernel/drv frc8vt# ls -l cc* -rwxr-xr-x 1 root sys 57080 Mar 12 10:15 cc* -rwxr-xr-x 1 root sys 288 Mar 12 10:16 cc.conf* frc8vt# rcp frc7v-cl1:/export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5/ cc . frc8vt# rcp frc7v-cl1:/export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5/ cc.conf . frc8vt# ls -l cc* -rwxr-xr-x 1 root sys 56928 Mar 12 10:34 cc* -rwxr-xr-x 1 root sys 288 Mar 12 10:35 cc.conf* frc8vt# ccドライバをロードしなおす。 frc7v-cl1# pwd /export/home/frc7v-cl1/inoue/CAMAC/Driver/FORCE-5V-sol2.5 frc7v-cl1# make unload ./script/cc_unload.sh [Removing CAMAC device driver] [Removing CAMAC device driver from system] [Deleting CAMAC device files] frc7v-cl1# make load ./script/cc_load.sh [Installing CAMAC device driver] cp: cannot create /usr/kernel/drv/cc: Read-only file system cp: cannot create /usr/kernel/drv/cc.conf: Read-only file system [Adding CAMAC device driver to system] [Configuring CAMAC device driver] [Making CAMAC device files] frc7v-cl1# ls -l /dev/cc lrwxrwxrwx 1 root other 69 Mar 12 1999 /dev/cc -> /devices/iommu@ 0,10000000/sbus@0,10001000/VME@5,ffffe00/cc@2d,ff00:cc frc7v-cl1# cam2プログラムを実行する。 frc7v-cl1[46]% cam2 Input transfer mode (1:word 2:long word) >1 Input loop >5 Input mode (0:QSTOP 1:QIGNORE 2:QREPEAT 3:QSCAN) >1 Input data counts >5 Input n a f >3 0 0 cam2プログラムはここでフリーズした。 システムはパニックを起こしてリブートしてしまった。 NOTICE: camac_b: debBA step01. D -TRnter camac_b()A NOTPC: inty0x3f53cp e= 1 3 4 0 09 NOTICr: cpmac_b= debug stefc208--- cal5 physio(8 NOe4C : ac_sdratdgyr debug st=f03.6--- e1ter36c_stfategy() : debugw cc_stra=1g: debug st_f0s.r--- f=und the ca32c r6ad cam2: Data fault kernel read fault at addr=0xf6136f5c, pme=0x0 MMU sfsr=326: Invalid Address on supv data fetch at level 3 pte addr = 0xf603c3d8, level = 3 wrong ctx/as ctx 0, as 0xf59147e0 wrong ctx/as 2 ctx 0, as 0xef pid=402, pc=0xf6070588, sp=0xfc085930, psr=0x44010c6, context=0 g1-g7: f026de48, 3e5e, f6034e58, c00, 200, 1, f5fc9dc0 sBepe4g1. --- dmaiaddr n 0x c0 NOTICEtrcacne in 3bbat=c0 NOTICk: .cc_st.ateg.: sbpg st p0=. --fstartcD08 :OT5C9: cc3in0 debuCastlple. --d ent f cc_intr()r NOoIm : fc_6ntr: debug ste0068d --- cc-dint0 rrupt=0xe NOTIC,: c fintr: depug=ftep06bc ---0cc->e8ecuting_5ma9flag !=a00,N TICE: ca_in rrgsd=bu0 tep06d. 2-- acae 6 interrupt: return cc0in0r( f NOTIc0: 8cc5strategya ddbug step07. --8 eturn DfA 6OTICE: camac_b: deb0g stepf7.2--- f0t0 nfphys0o() 0000 Called from f00bd3ac, fp=fc085a70, args=f00000 5 600 2a fc085b08 f5c80790 Called from f0068900, fp=fc085b80, args=f5939e00 f5c83d04 22 3 22 3 Called from 11f30, fp=effff8c0, args=1 600 3f53c0 5 24a70 24a80 End traceback... panic: Data fault syncing file systems... 2 done 2780 static and sysmap kernel pages 102 dynamic kernel data pages 494 kernel-pageable pages 0 segkmap kernel pages 0 segvn kernel pages 287 current user process pages 3663 total pages (3663 chunks) dumping to vp f59444dc, offset 138672 3663 total pages, dump succeeded rebooting... Resetting ... screen not found. Can't open input device. Keyboard not present. Using tty for input and output. SPARC CPU-7V, No Keyboard ROM Rev. 2.15.1, 64 MB memory installed, Serial #9157050. Ethernet address 0:80:42:b:49:ba, Host ID: 808bb9ba. apply failed. Initializing Memory - Type help for more information ok ok boot net -r Boot device: /iommu/sbus/ledma@5,8400010/le@5,8c00000 File and args: -r 2dc00 hostname: frc7v-cl1 domainname: kek.jp root server: frc8vt root directory: /export/root/frc7v-cl1 SunOS Release 5.6 Version Generic_105181-05 [UNIX(R) System V Release 4.0] Copyright (c) 1983-1997, Sun Microsystems, Inc. configuring network interfaces: le0. Hostname: frc7v-cl1 Configuring the /devices directory FRCvme V2.3.1 VME Nexus (FGA-5000 FGA-5100) NOTICE: VME: slavewin at vme=0x0, size=0x100000 space=0x2d020617 CAMAC device driver V1.3x, 1991-1993 by Y.TAKEUCHI (T.I.T.) cc0 at VME0: vme16d16 0xff00 VME level 4 vector 0xff sparc ipl 7 vmemem0 at VME0: vme32d16 0x0 vmemem1 at VME0: vme16d16 0x0 vmemem2 at VME0: vme24d16 0x0 vmemem3 at VME0: vme32d32 0x0 vmemem4 at VME0: vme16d32 0x0 vmemem5 at VME0: vme24d32 0x0 vmeplus0 at VME0: vme16d16 0x0 and vme24d16 0x0 and vme32d16 0x0 and vme16d32 0x 0 and vme24d32 0x0 and vme32d32 0x0 and space 0x2f offset 0x0 and space 0x6f offset 0x0 and space 0x10 offset 0x0 and space 0x11 offset 0x0 and space 0x50 offset 0x0 and space 0x51 offset 0x0 vmedma0 at VME0 vmefdma0 at VME0 vmedvma0 at VME0 vmectl0 at VME0 Configuring the /dev directory Configuring the /dev directory (compatibility devices) The system is coming up. Please wait. checking for crash dump...System went down at Fri Mar 12 10:30:20 1999 savecore: Dump will be saved, but free space threshold will be crossed Saving 3663 pages of image in vmcore.25 3663 pages saved. Processing modules: Done. Constructing Namelist file: /var/crash/frc7v-cl1/unix.25 Namelist file complete. default ICCFP1.kek.jp done add net default: gateway ICCFP1 NIS domainname is kek.jp starting rpc services: rpcbind keyserv done. Setting netmask of le0 to 255.255.252.0 Setting default interface for multicast: add net 224.0.0.0: gateway frc7v-cl1 "/dev/swap" is not valid for swapping. It must be a block device or a regular file with the "save user text on execution" bit set. syslog service starting. syslogd: line 24: unexpected getnetconfig failure Print services started. volume management starting. Wnn6: Key License Server started.... Nihongo Multi Client Server (Wnn6 R2.30) Finished Reading Files The system is ready. frc7v-cl1 console login: システムは正常に立ち上がった。 ホームディレクトリをマウントする。 onlsun1[93]% !! rlogin frc7v-cl1 Password: No directory! Logging in with home=/ Last login: Fri Mar 12 10:22:01 from onlsun1.kek.jp Sun Microsystems Inc. SunOS 5.6 Generic August 1997 frc7v-cl1% su Password: # mount frc8vt:/export/home/frc8vt /export/home/frc7v-cl1 # frc7v-cl1% logout Connection closed. onlsun1[94]% !! rlogin frc7v-cl1 Last login: Fri Mar 12 10:37:48 from onlsun1.kek.jp Sun Microsystems Inc. SunOS 5.6 Generic August 1997 frc7v-cl1[33]% ls -l total 8 drwxr-xr-x 3 inoue staff 512 Feb 9 15:34 CAMAC/ drwxr-xr-x 3 inoue staff 512 Nov 6 11:07 FORCE/ drwxr-xr-x 2 inoue staff 512 Feb 18 10:29 Ktaka/ -rw------- 1 inoue staff 592 Feb 26 16:49 mbox frc7v-cl1[34]% システム・クラッシュ・ダンプ・ファイルをチェックする。 frc7v-cl1[38]% adb -k unix.25 vmcore.25 physmem 3e2d $c complete_panic(0x0,0x4401ce1,0x0,0x44010e1,0x0,0xf00) + 5c do_panic(0x1,0xfc085794,0x0,0x48010e1,0x1,0xf5bc9400) + a8 vcmn_err(0x3,0xf0269878,0xfc085794,0x3,0xffeec000,0x0) + 180 cmn_err(0x3,0xf0269878,0xfc086,0x53,0x53,0xf025e400) + 1c die(0x9,0xfc0858e4,0xf6136f5c,0x326,0x1,0xf0269878) + bc trap(0x0,0xfc0858e4,0xf0000000,0x0,0x6,0x1) + 930 fault(?) + 84 cmn_err(0x1,0xf6071070,0xa,0x40,0xf59147e0,0xfc085ad8) camac_b(0x0,0x2a,0x600,0xfc085ad8,0xf60f2f00,0xf00000) + 208 cc_write(0xf00000,0x5,0x600,0x2a,0xfc085b08,0xf5c80790) + 3f0 writev(0xf5939e00) + 2b0 $q frc7v-cl1[39]% ????. cmn_err()文でエラーを起こしている。 --- (6). セクション (6-1). サブセクション (6-1-1). サブサブセクション