星期三, 11月 14, 2018

Raspberry Pi 3+ Study



Study:

  1. 學習樹莓派--Raspberry Pi (SCRATCH)
  2. 智慧插座(Smart Relay): 從GPIO到繼電器





Reference:
  1. 一小時Python入門-part 1
  2. C語言入門: 宣告,賦值,PRINTF
  3. RPi BCM2835 GPIOs
  4. 智慧開關(Smart Relay)學習套件 NT$524
  5. 樹莓派 Raspberry Pi 3 Model B+ (Made in UK) 約 1266 NTD
  6. Online codingground
  7. https://ideone.com/gaczYw
  8. https://www.onlinegdb.com/
  9. Codenvy

星期三, 10月 31, 2018

Raspberrypi 教學


  1. TaiwanIOT
  2. (COSCUP2014) Raspberry Pi 應用展示與遊戲機演進篇
  3. 樹莓派在物聯網上的應用案例
  4. 學習套件
  5. 智慧插座(Smart Relay): 從GPIO到繼電器

  1. 3M 櫥下型三道式淨水器 S301 $8490
  2. 3M SQC PP+樹脂過濾系統+腳架組 14900 
  3. 3M S201 超微密淨水器 ★升級精美腳架 (3M PP+樹脂+S201三道式) ★贈PP濾心三支 15900
  4. 3M HEAT2000 
    1. 尺 寸:21x41x32.5
  5. HEAT1000
    1. 20x28x35
  6. 源泉
    1. S201 40x20x50 
  7. 【imeier】即熱式智能飲水機 含濾芯(即熱式飲水機 省電 飲水機 濾芯)



  1. 3M S201 濾心 $4290
  2. 【Buder 普德】DC-1604 四道式中空絲膜生飲級淨水器(免費安裝) $8500


S004(濾心型號:3US-F004-5):                      0.5微米, 可抑制水垢, 出水量:5.6公升/鐘, 濾水量:7571公升(最長壽命:1年), 市價:2000元
S201(或稱DWS4000)(濾心型號:3US-F201-5):0.2微米, 可除鉛, 出水量:5.7公升/鐘, 濾水量:5678公升(最長壽命:1年), 市價:4000元
DWS6000(濾心型號:DWS6000-C-CN):          0.2微米, 出水量:3.8公升/鐘, 濾水量:5678公升(最長壽命:1年), 市價:4990元







Ref:

  1. 請問3M的SQC濾頭都通用嗎?
  2. 三款淨水器選擇?
  3. 超完整分析

星期四, 3月 22, 2018

iscsi remote XEN disk error

[228921.953996] RPC: Registered named UNIX socket transport module.
[228921.954004] RPC: Registered udp transport module.
[228921.954007] RPC: Registered tcp transport module.
[228921.954010] RPC: Registered tcp NFSv4.1 backchannel transport module.
[228922.038827] FS-Cache: Loaded
[228922.125006] NFS: Registering the id_resolver key type
[228922.125032] Key type id_resolver registered
[228922.125036] Key type id_legacy registered
[228922.125051] FS-Cache: Netfs 'nfs' registered for caching
[228922.183976] Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
[228959.252466] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[228959.252508] NFSD: starting 90-second grace period
[229422.086442] nfsd: last server has exited, flushing export cache
[229423.238267] NFSD: Using /var/lib/nfs/v4recovery as the NFSv4 state recovery directory
[229423.238275] NFSD: starting 90-second grace period
[644791.340714] type=1400 audit(1521595638.681:38): apparmor="DENIED" operation="capable" parent=1 profile="/usr/sbin/cupsd" pid=939 comm="cupsd" pid=939 comm="cupsd" capability=36  capname="block_suspend"
[693269.134953] end_request: I/O error, dev xvda, sector 4577992
[693269.135069] Buffer I/O error on device xvda1, logical block 571993
[693269.135173] lost page write due to I/O error on xvda1
[693269.135212] end_request: I/O error, dev xvda, sector 4578000
[693269.135340] end_request: I/O error, dev xvda, sector 4578088
[693269.135447] end_request: I/O error, dev xvda, sector 4578176
[693269.135546] end_request: I/O error, dev xvda, sector 2743800
[693269.135649] Buffer I/O error on device xvda1, logical block 342719
[693269.135673] EXT4-fs warning (device xvda1): ext4_end_bio:248: I/O error writing to inode 269809 (offset 0 size 4096 starting block 342976)
[693269.135675] end_request: I/O error, dev xvda, sector 2647096
[693269.135695] Buffer I/O error on device xvda1, logical block 330631
[693269.135717] EXT4-fs warning (device xvda1): ext4_end_bio:248: I/O error writing to inode 261941 (offset 0 size 4096 starting block 330888)
[693269.135719] end_request: I/O error, dev xvda, sector 2647104
[693269.135739] Buffer I/O error on device xvda1, logical block 330632
[693269.135762] EXT4-fs warning (device xvda1): ext4_end_bio:248: I/O error writing to inode 306132 (offset 0 size 4096 starting block 330889)
[693269.135777] JBD2: Detected IO errors while flushing file data on xvda1-8
[693269.135795] Aborting journal on device xvda1-8.
[693269.135822] EXT4-fs error (device xvda1) in ext4_reserve_inode_write:4482: Journal has aborted
[693269.135826] EXT4-fs (xvda1): delayed block allocation failed for inode 319553 at logical offset 0 with max blocks 1 with error -30
[693269.135827] EXT4-fs (xvda1): This should not happen!! Data will be lost
[693269.135827]
[693269.135830] EXT4-fs error (device xvda1) in ext4_da_writepages:2390: Journal has aborted
[693390.984082] end_request: I/O error, dev xvda, sector 4458496
[693390.984222] Buffer I/O error on device xvda1, logical block 557056
[693390.984327] lost page write due to I/O error on xvda1
[693390.984353] end_request: I/O error, dev xvda, sector 2048
[693390.984446] Buffer I/O error on device xvda1, logical block 0
[693390.984542] lost page write due to I/O error on xvda1
[693390.984603] JBD2: Error -5 detected when updating journal superblock for xvda1-8.
[693480.404213] INFO: task rs:main Q:Reg:983 blocked for more than 120 seconds.
[693480.404341] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[693480.404472] rs:main Q:Reg   D ffffffff8180cbe0     0   983      1 0x00000000
[693480.404481]  ffff8803df1db868 0000000000000086 0000000027326853 ffffffff81cd3800
[693480.404490]  ffff8803df1dbfd8 ffff8803df1dbfd8 ffff8803df1dbfd8 00000000000139c0
[693480.404497]  ffff8803e1fe0000 ffff8803df5cc500 ffff8803df1db838 ffff8803f7894258
[693480.404505] Call Trace:
[693480.404522]  [<ffffffff811b9210>] ? __wait_on_buffer+0x30/0x30
[693480.404532]  [<ffffffff8169bee9>] schedule+0x29/0x70
[693480.404539]  [<ffffffff8169bfbf>] io_schedule+0x8f/0xd0
[693480.404546]  [<ffffffff811b921e>] sleep_on_buffer+0xe/0x20
[693480.404553]  [<ffffffff8169a73a>] __wait_on_bit_lock+0x5a/0xc0
[693480.404560]  [<ffffffff811b9210>] ? __wait_on_buffer+0x30/0x30
[693480.404567]  [<ffffffff8169a81c>] out_of_line_wait_on_bit_lock+0x7c/0x90
[693480.404576]  [<ffffffff810785c0>] ? autoremove_wake_function+0x40/0x40
[693480.404583]  [<ffffffff811b9266>] __lock_buffer+0x36/0x40
[693480.404590]  [<ffffffff811ba845>] __sync_dirty_buffer+0xc5/0xd0
[693480.404597]  [<ffffffff811ba863>] sync_dirty_buffer+0x13/0x20
[693480.404608]  [<ffffffff81242ca8>] ext4_commit_super+0x1d8/0x230
[693480.404616]  [<ffffffff81242ef3>] save_error_info+0x23/0x30
[693480.404624]  [<ffffffff812443a6>] __ext4_abort+0x36/0x120
[693480.404632]  [<ffffffff8124459d>] ext4_journal_start_sb+0x10d/0x1d0
[693480.404640]  [<ffffffff812293e6>] ? ext4_dirty_inode+0x26/0x60
[693480.404649]  [<ffffffff81091239>] ? find_busiest_group+0x39/0x4a0
[693480.404655]  [<ffffffff812293e6>] ext4_dirty_inode+0x26/0x60
[693480.404666]  [<ffffffff811b0f80>] __mark_inode_dirty+0x40/0x2a0
[693480.404675]  [<ffffffff811a275a>] update_time.part.17+0x7a/0xc0
[693480.404682]  [<ffffffff811a27c5>] update_time+0x25/0x30
[693480.404688]  [<ffffffff811a286c>] file_update_time+0x9c/0x100
[693480.404699]  [<ffffffff81129948>] __generic_file_aio_write+0x1f8/0x440
[693480.404707]  [<ffffffff8169ce1e>] ? _raw_spin_lock+0xe/0x20
[693480.404714]  [<ffffffff81129c02>] generic_file_aio_write+0x72/0xe0
[693480.404725]  [<ffffffff8121e5cf>] ext4_file_write+0xbf/0x250
[693480.404736]  [<ffffffff810ae1e8>] ? futex_wait+0x108/0x210
[693480.404746]  [<ffffffff81187bea>] do_sync_write+0xda/0x120
[693480.404759]  [<ffffffff812f5088>] ? apparmor_file_permission+0x18/0x20
[693480.404768]  [<ffffffff812baccc>] ? security_file_permission+0x2c/0xb0
[693480.404775]  [<ffffffff81188191>] ? rw_verify_area+0x61/0xf0
[693480.404783]  [<ffffffff811884f3>] vfs_write+0xb3/0x180
[693480.404790]  [<ffffffff8118881a>] sys_write+0x4a/0x90
[693480.404800]  [<ffffffff816a5669>] system_call_fastpath+0x16/0x1b
[693512.454736] end_request: I/O error, dev xvda, sector 2048
[693512.454846] Buffer I/O error on device xvda1, logical block 0
[693512.454943] lost page write due to I/O error on xvda1
[693512.455014] EXT4-fs (xvda1): Remounting filesystem read-only
[693512.455058] EXT4-fs (xvda1): Remounting filesystem read-only
[693512.455223] EXT4-fs (xvda1): ext4_da_writepages: jbd2_start: 2048 pages, ino 319553; err -30
[693512.455485] EXT4-fs (xvda1): I/O error while writing superblock
[693512.455588] EXT4-fs error (device xvda1): ext4_journal_start_sb:371: Detected aborted journal

星期一, 3月 19, 2018

make cpio for initramfs busybox

http://wood1978.dyndns.org/~wood/wordpress/2011/03/10/build-initramfs-with-busybox/

$ find . | cpio -o -H newc | gzip > ../busybox.initramfs.cpio.gz
cpio -idv < /tmp/object.cpio



/dev # ls -l
total 0
crw-------    1 root     root       10, 235 Jan  1 00:00 autofs
drwxr-xr-x    2 root     root           440 Jan  1 00:00 block
drwxr-xr-x    3 root     root            60 Jan  1 00:00 bus
drwxr-xr-x    2 root     root          2060 Jan  1 00:00 char
crw-------    1 root     root        5,   1 Jan  1 00:00 console
crw-------    1 root     root       10,  63 Jan  1 00:00 cpu_dma_latency
lrwxrwxrwx    1 root     root            13 Jan  1 00:00 fd -> /proc/self/fd
crw-------    1 root     root        1,   7 Jan  1 00:00 full
crw-------    1 root     root       89,   0 Jan  1 00:00 i2c-0
crw-------    1 root     root       89,   1 Jan  1 00:00 i2c-1
crw-------    1 root     root        1,   2 Jan  1 00:00 kmem
crw-------    1 root     root        1,  11 Jan  1 00:00 kmsg
crw-------    1 root     root        1,   1 Jan  1 00:00 mem
crw-------    1 root     root       10,  60 Jan  1 00:00 memory_bandwidth
crw-------    1 root     root       90,   0 Jan  1 00:00 mtd0
crw-------    1 root     root       90,   1 Jan  1 00:00 mtd0ro
crw-------    1 root     root       90,   2 Jan  1 00:00 mtd1
crw-------    1 root     root       90,   3 Jan  1 00:00 mtd1ro
crw-------    1 root     root       90,   4 Jan  1 00:00 mtd2
crw-------    1 root     root       90,   5 Jan  1 00:00 mtd2ro
crw-------    1 root     root       90,   6 Jan  1 00:00 mtd3
crw-------    1 root     root       90,   7 Jan  1 00:00 mtd3ro
brw-------    1 root     root       31,   0 Jan  1 00:00 mtdblock0
brw-------    1 root     root       31,   1 Jan  1 00:00 mtdblock1
brw-------    1 root     root       31,   2 Jan  1 00:00 mtdblock2
brw-------    1 root     root       31,   3 Jan  1 00:00 mtdblock3
crw-------    1 root     root       10,  62 Jan  1 00:00 network_latency
crw-------    1 root     root       10,  61 Jan  1 00:00 network_throughput
crw-------    1 root     root        1,   3 Jan  1 00:00 null
crw-------    1 root     root        5,   2 Jan  1 00:00 ptmx
drwxr-xr-x    2 root     root             0 Jan  1 00:00 pts
brw-------    1 root     root        1,   0 Jan  1 00:00 ram0
brw-------    1 root     root        1,   1 Jan  1 00:00 ram1
brw-------    1 root     root        1,  10 Jan  1 00:00 ram10
brw-------    1 root     root        1,  11 Jan  1 00:00 ram11
brw-------    1 root     root        1,  12 Jan  1 00:00 ram12
brw-------    1 root     root        1,  13 Jan  1 00:00 ram13
brw-------    1 root     root        1,  14 Jan  1 00:00 ram14
brw-------    1 root     root        1,  15 Jan  1 00:00 ram15
brw-------    1 root     root        1,   2 Jan  1 00:00 ram2
brw-------    1 root     root        1,   3 Jan  1 00:00 ram3
brw-------    1 root     root        1,   4 Jan  1 00:00 ram4
brw-------    1 root     root        1,   5 Jan  1 00:00 ram5
brw-------    1 root     root        1,   6 Jan  1 00:00 ram6
brw-------    1 root     root        1,   7 Jan  1 00:00 ram7
brw-------    1 root     root        1,   8 Jan  1 00:00 ram8
brw-------    1 root     root        1,   9 Jan  1 00:00 ram9
crw-------    1 root     root        1,   8 Jan  1 00:00 random
crw-------    1 root     root       10, 231 Jan  1 00:00 snapshot
crw-------    1 root     root      153,   0 Jan  1 00:00 spidev0.0
lrwxrwxrwx    1 root     root            15 Jan  1 00:00 stderr -> /proc/self/fd/2
lrwxrwxrwx    1 root     root            15 Jan  1 00:00 stdin -> /proc/self/fd/0
lrwxrwxrwx    1 root     root            15 Jan  1 00:00 stdout -> /proc/self/fd/1
crw-------    1 root     root        5,   0 Jan  1 00:00 tty
crw-------    1 root     root        4,   0 Jan  1 00:00 tty0
crw-------    1 root     root        4,   1 Jan  1 00:00 tty1
crw-------    1 root     root        4,  10 Jan  1 00:00 tty10
crw-------    1 root     root        4,  11 Jan  1 00:00 tty11
crw-------    1 root     root        4,  12 Jan  1 00:00 tty12
crw-------    1 root     root        4,  13 Jan  1 00:00 tty13
crw-------    1 root     root        4,  14 Jan  1 00:00 tty14
crw-------    1 root     root        4,  15 Jan  1 00:00 tty15
crw-------    1 root     root        4,  16 Jan  1 00:00 tty16
crw-------    1 root     root        4,  17 Jan  1 00:00 tty17
crw-------    1 root     root        4,  18 Jan  1 00:00 tty18
crw-------    1 root     root        4,  19 Jan  1 00:00 tty19
crw-------    1 root     root        4,   2 Jan  1 00:00 tty2
crw-------    1 root     root        4,  20 Jan  1 00:00 tty20
crw-------    1 root     root        4,  21 Jan  1 00:00 tty21
crw-------    1 root     root        4,  22 Jan  1 00:00 tty22
crw-------    1 root     root        4,  23 Jan  1 00:00 tty23
crw-------    1 root     root        4,  24 Jan  1 00:00 tty24
crw-------    1 root     root        4,  25 Jan  1 00:00 tty25
crw-------    1 root     root        4,  26 Jan  1 00:00 tty26
crw-------    1 root     root        4,  27 Jan  1 00:00 tty27
crw-------    1 root     root        4,  28 Jan  1 00:00 tty28
crw-------    1 root     root        4,  29 Jan  1 00:00 tty29
crw-------    1 root     root        4,   3 Jan  1 00:00 tty3
crw-------    1 root     root        4,  30 Jan  1 00:00 tty30
crw-------    1 root     root        4,  31 Jan  1 00:00 tty31
crw-------    1 root     root        4,  32 Jan  1 00:00 tty32
crw-------    1 root     root        4,  33 Jan  1 00:00 tty33
crw-------    1 root     root        4,  34 Jan  1 00:00 tty34
crw-------    1 root     root        4,  35 Jan  1 00:00 tty35
crw-------    1 root     root        4,  36 Jan  1 00:00 tty36
crw-------    1 root     root        4,  37 Jan  1 00:00 tty37
crw-------    1 root     root        4,  38 Jan  1 00:00 tty38
crw-------    1 root     root        4,  39 Jan  1 00:00 tty39
crw-------    1 root     root        4,   4 Jan  1 00:00 tty4
crw-------    1 root     root        4,  40 Jan  1 00:00 tty40
crw-------    1 root     root        4,  41 Jan  1 00:00 tty41
crw-------    1 root     root        4,  42 Jan  1 00:00 tty42
crw-------    1 root     root        4,  43 Jan  1 00:00 tty43
crw-------    1 root     root        4,  44 Jan  1 00:00 tty44
crw-------    1 root     root        4,  45 Jan  1 00:00 tty45
crw-------    1 root     root        4,  46 Jan  1 00:00 tty46
crw-------    1 root     root        4,  47 Jan  1 00:00 tty47
crw-------    1 root     root        4,  48 Jan  1 00:00 tty48
crw-------    1 root     root        4,  49 Jan  1 00:00 tty49
crw-------    1 root     root        4,   5 Jan  1 00:00 tty5
crw-------    1 root     root        4,  50 Jan  1 00:00 tty50
crw-------    1 root     root        4,  51 Jan  1 00:00 tty51
crw-------    1 root     root        4,  52 Jan  1 00:00 tty52
crw-------    1 root     root        4,  53 Jan  1 00:00 tty53
crw-------    1 root     root        4,  54 Jan  1 00:00 tty54
crw-------    1 root     root        4,  55 Jan  1 00:00 tty55
crw-------    1 root     root        4,  56 Jan  1 00:00 tty56
crw-------    1 root     root        4,  57 Jan  1 00:00 tty57
crw-------    1 root     root        4,  58 Jan  1 00:00 tty58
crw-------    1 root     root        4,  59 Jan  1 00:00 tty59
crw-------    1 root     root        4,   6 Jan  1 00:00 tty6
crw-------    1 root     root        4,  60 Jan  1 00:00 tty60
crw-------    1 root     root        4,  61 Jan  1 00:00 tty61
crw-------    1 root     root        4,  62 Jan  1 00:00 tty62
crw-------    1 root     root        4,  63 Jan  1 00:00 tty63
crw-------    1 root     root        4,   7 Jan  1 00:00 tty7
crw-------    1 root     root        4,   8 Jan  1 00:00 tty8
crw-------    1 root     root        4,   9 Jan  1 00:00 tty9
crw-------    1 root     root      204,  64 Jan  1 00:00 ttyAMA0
crw-r--r--    1 root     root      204,  65 Jan  1 00:00 ttyAMA1
crw-------    1 root     root      204,  64 Jan  1 00:15 ttyS000
crw-------    1 root     root        1,   9 Jan  1 00:00 urandom
crw-------    1 root     root        7,   0 Jan  1 00:00 vcs
crw-------    1 root     root        7,   1 Jan  1 00:00 vcs1
crw-------    1 root     root        7, 128 Jan  1 00:00 vcsa
crw-------    1 root     root        7, 129 Jan  1 00:00 vcsa1
crw-------    1 root     root        1,  13 Jan  1 00:00 vencmem
crw-------    1 root     root        1,   5 Jan  1 00:00 zero

星期五, 3月 16, 2018

auto execution self script


auto execution self script



==========================================
#!/bin/sh
tail -n +$((`grep -an "^### end of script" $0 | head -1 | cut -d: -f1`+1)) $0 | cat -


exit 0
### end of script ###
aaaa
bbb

星期二, 3月 06, 2018

CLUSTERING ANALYSIS

CLUSTERING ANALYSIS
  • Hierarchical
    • Distance
      • 歐式距離 (Euclidean distance): d(X,Y) = \sqrt{ \Sigma_i( x_i - y_i)^2 }
      • 曼哈頓距離 (Manhanttan distance): d(X,Y) =  \Sigma_i | ( x_i - y_i) |
      • 坎培拉距離 (Canberra distance): d(X,Y) = \Sigma_i \frac{  | ( x_i - y_i) |}{ |x_i| + |y_i|}
    • Classfied
      • 單一連結法 (Single Linkage): d_{A,B} = min_{ i \in A; j \in B(d_{ij})}  
      • 完全連結法 (Complete Linkage): d_{A,B} = max_{ i \in A; j \in B(d_{ij})}  
      • 平均法 (Average Linkage): d_{A,B} = \frac{1}{n_A n_B} \Sigma_{i \in A} \Sigma_{i \in B} d_{ij}
      • 中心法 (Centroid  Method): d_{A,B} = d( \bar{\bar{x}}_A , \bar{\bar{x}}_B) = \| \bar{x}_A - \bar{x}_B \| ^2
  • Nonhierarchical.
    • K-means
    • Self-organizing map

Reference:
  1. 小羊的研究筆記
  2. https://kknews.cc/tech/rrkly3x.html
  3. https://read01.com/zh-tw/LNRzxM.html#.Wp56Q-huaUk

星期一, 2月 12, 2018

[Live-devel] RTSPServer port reuse


http://lists.live555.com/pipermail/live-devel/2011-October/013966.html

> I am using Live555 to run an RTSP server on an embedded system, and I would like to restart the server programmatically.  However, the current RTSPServer implementation does not allow the same port to be re-used if the socket is in a TIME_WAIT state.
>  
> I had a look around and saw a previous thread regarding this issue (http://lists.live555.com/pipermail/live-devel/2011-July/013664.html).

Actually, this thread starts at
 http://lists.live555.com/pipermail/live-devel/2011-July/013648.html
I suggest reading this entire thread to better understand the issues involved.


>   For debugging it is not too difficult to reboot my system or wait for the TIME_WAIT state to end, but for restarting programmatically it would be nice if there were an option to tell the RTSPServer class that I want it to reuse the same port even if there is a socket on that port in the TIME_WAIT state.
>  
> I can obviously change the code, and have done so, but thought I would throw my vote in for allowing this behavior by design.  If you would like a patch for the changes I made (basically adding a default parameter ‘Boolean allowPortReuse = false’ to the relevant RTSPServer functions), I would be happy to send one.

I don't want to add a runtime parameter for this - in part because there are already three default parameters to "RTSPClient::createNew()", and I'd rather not add another one.  (Also, I don't want to make it too easy for people to disable the 'port reuse' check unless (like you) they know what they doing - otherwise we might actually end up with people trying to have more than one server running on the same port at the same time.)

What I can do, however, is add a #ifndef/#endif around the "NoReuse dummy;" statement on line 156 of "RTSPServer.cpp" - i.e., making it:

#ifndef ALLOW_RTSP_SERVER_PORT_REUSE
 NoReuse dummy;
#endif

Then, you can add
 -D ALLOW_RTSP_SERVER_PORT_REUSE=1
to the "COMPILE_OPTS =" line of your "config." file.

I hope that will work for you...