<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-3367537455844008432</id><updated>2009-09-27T20:54:34.409+08:00</updated><title type='text'>NetComm (old)</title><subtitle type='html'>jeul's memo</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default?start-index=26&amp;max-results=25'/><author><name>jeul</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>103</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-5353739677830660187</id><published>2009-07-02T14:21:00.001+08:00</published><updated>2009-07-02T14:24:53.932+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bfin'/><category scheme='http://www.blogger.com/atom/ns#' term='asm'/><title type='text'>delay count</title><content type='html'>一個簡易的 delay 迴圈&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;void delay_count(int count)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(255, 0, 0);"&gt;volatile&lt;/span&gt; int i; /* not optimized out */&lt;br /&gt;&lt;br /&gt;    for(i=0;i&amp;lt;count;i++);&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt; 編譯結果，需要兩個 register R0, R1，及 4-byte&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;ff6005b4 &lt;_delay_count&gt;: /* size 0x22 */&lt;br /&gt;ff6005b4:    00 e8 01 00     LINK 0x4;        /* (4) */&lt;br /&gt;ff6005b8:    08 30           R1 = R0;&lt;br /&gt;ff6005ba:    00 60           R0 = 0x0 (X);        /*        R0=0x0(  0) */&lt;br /&gt;ff6005bc:    f0 bb           [FP -0x4] = R0;&lt;br /&gt;ff6005be:    f0 b9           R0 = [FP -0x4];&lt;br /&gt;ff6005c0:    01 09           CC = R1 &lt;= R0;&lt;br /&gt;ff6005c2:    07 18           IF CC JUMP 0xff6005d0 &lt;_delay_count+0x1c&gt;;&lt;br /&gt;ff6005c4:    f0 b9           R0 = [FP -0x4];&lt;br /&gt;ff6005c6:    08 64           R0 += 0x1;        /* (  1) */&lt;br /&gt;ff6005c8:    f0 bb           [FP -0x4] = R0;&lt;br /&gt;ff6005ca:    f0 b9           R0 = [FP -0x4];&lt;br /&gt;ff6005cc:    88 08           CC = R0 &lt; R1;&lt;br /&gt;ff6005ce:    fb 1f           IF CC JUMP 0xff6005c4 &lt;_delay_count+0x10&gt; (BP);&lt;br /&gt;ff6005d0:    01 e8 00 00     UNLINK;&lt;br /&gt;ff6005d4:    10 00           RTS;&lt;br /&gt;&lt;/div&gt; 如果區域變數 i 沒加 volatile，會被編譯器最佳化，而整個省略成如下。在程式 delay_count() 的呼叫也會被省略。&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;ff6005b4 &lt;_delay_count&gt;:&lt;br /&gt;ff6005b4:    00 00           NOP;&lt;br /&gt;ff6005b6:    00 00           NOP;&lt;br /&gt;ff6005b8:    00 e8 00 00     LINK 0x0;        /* (0) */&lt;br /&gt;ff6005bc:    01 e8 00 00     UNLINK;&lt;br /&gt;ff6005c0:    10 00           RTS;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;程式可以作一些調整，節省一些資源&lt;br /&gt;&lt;ul&gt;&lt;li&gt;採用 down counter 可直接判斷是否為 0，省用 R1&lt;br /&gt;&lt;/li&gt;&lt;li&gt;省略一開始是否為 0 的判斷&lt;/li&gt;&lt;li&gt;不存回&lt;/li&gt;&lt;/ul&gt; &lt;div style="margin-left: 40px;"&gt;void delay_count(volatile int count)&lt;br /&gt;{&lt;br /&gt;    do {&lt;br /&gt;        --count;&lt;br /&gt;    } while(count);&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt; 編譯結果 (&lt;span style="color: rgb(0, 0, 255);"&gt;藍色字&lt;/span&gt;是可再節省的部份)&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;ff6005b4 &lt;_delay_count&gt;: /* size: 0x18 */&lt;br /&gt;ff6005b4:    00 e8 00 00     LINK 0x0;        /* (0) */&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ff6005b8:    b8 b0           [FP + 0x8] = R0;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;ff6005ba:    b8 a0           R0 = [FP + 0x8];&lt;/span&gt;&lt;br /&gt;ff6005bc:    f8 67           R0 += -0x1;        /* ( -1) */&lt;br /&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;ff6005be:    b8 b0           [FP + 0x8] = R0;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;ff6005c0:    b8 a0           R0 = [FP + 0x8];&lt;/span&gt;&lt;br /&gt;ff6005c2:    00 0c           CC = R0 == 0x0;&lt;br /&gt;ff6005c4:    fb 17           IF !CC JUMP 0xff6005ba &lt;_delay_count+0x6&gt; (BP);&lt;br /&gt;ff6005c6:    01 e8 00 00     UNLINK;&lt;br /&gt;ff6005ca:    10 00           RTS;&lt;br /&gt;&lt;/div&gt; 改用組語寫：&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;void delay_count(int count)&lt;br /&gt;{&lt;br /&gt;    asm volatile (&lt;br /&gt;            "1:"&lt;br /&gt;            "%0 += -0x1;"&lt;br /&gt;            "CC = %0 == 0x0;"&lt;br /&gt;            "IF !CC JUMP 1b;"&lt;br /&gt;            :&lt;br /&gt;            :"r"(count)&lt;br /&gt;            );&lt;br /&gt;}&lt;br /&gt;&lt;/div&gt; 編譯結果，&lt;span style="color: rgb(255, 153, 0);"&gt;橘色字&lt;/span&gt;的部份是核心，大小 6 bytes：&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;ff6005b4 &lt;_delay_count&gt;: /* size 0x14 */&lt;br /&gt;ff6005b4:    00 00           NOP;&lt;br /&gt;ff6005b6:    00 00           NOP;&lt;br /&gt;ff6005b8:    00 e8 00 00     LINK 0x0;        /* (0) */&lt;br /&gt;&lt;span style="color: rgb(255, 153, 0);"&gt;ff6005bc:    f8 67           R0 += -0x1;        /* ( -1) */&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(255, 153, 0);"&gt;ff6005be:    00 0c           CC = R0 == 0x0;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(255, 153, 0);"&gt;ff6005c0:    fe 13           IF !CC JUMP 0xff6005bc &lt;_delay_count+0x8&gt;;&lt;/span&gt;&lt;br /&gt;ff6005c2:    01 e8 00 00     UNLINK;&lt;br /&gt;ff6005c6:    10 00           RTS;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;有沒有可能進一步改進呢？&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-5353739677830660187?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/5353739677830660187/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=5353739677830660187' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/5353739677830660187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/5353739677830660187'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2009/07/delay-count.html' title='delay count'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-6225872029867243103</id><published>2009-06-29T10:53:00.003+08:00</published><updated>2009-06-29T11:06:03.761+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='codec'/><title type='text'>LZW 壓縮</title><content type='html'>LZW 是一種 lossless dictionary-based compression，用於 GIF、TIFF、UNIX Compress、PDF 檔等。&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dictionary is dynamically constructed in the compression and decompress process, so it does not have to be transmitted.&lt;/li&gt;&lt;li&gt;This compression technique is capable of achieving respectable compression ratios, typically on the order of 50 ~ 60%, while consuming about 2K of RAM. In larger RAM memory sizes, 8K or 16K, it is possible to achieve 80% efficiency or more.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;參考文獻&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;Wikipedia: &lt;a href="http://zh.wikipedia.org/w/index.php?title=LZW&amp;amp;variant=zh-tw"&gt;LZW (中)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.embedded.com/217800397;jsessionid=MGREKPH0TH4QEQSNDLOSKHSCJUNN2JVN?pgno=2"&gt;Lossless Data Compression for Embedded Systems&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-6225872029867243103?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/6225872029867243103/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=6225872029867243103' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/6225872029867243103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/6225872029867243103'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2009/06/lzw.html' title='LZW 壓縮'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-740713764435010030</id><published>2009-06-26T17:51:00.003+08:00</published><updated>2009-06-26T17:58:59.745+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>mmap @ user space</title><content type='html'>參考：&lt;a href="http://fanqiang.chinaunix.net/a4/b8/20010526/110000243_b.html" rel="nofollow"&gt;Linux程式設計-13.記憶體對映mmap&lt;/a&gt; 或 GNU libc manual &lt;a href="http://www.gnu.org/s/libc/manual/html_node/Memory_002dmapped-I_002fO.html" rel="nofollow"&gt;13.7 Memory-mapped I/O&lt;/a&gt;&lt;br /&gt;mmap() 將檔案當成記憶體使用，將 file 從 offset 開始、長度 length 的區塊映射到 user virtual memory 供存取。&lt;br /&gt;&lt;br /&gt;#include &lt;sys h=""&gt;&lt;br /&gt;void  *  mmap(void  *start,  size_t length, int prot , int flags, int fd, off_t offset);&lt;br /&gt;int munmap(void *start, size_t length);&lt;br /&gt;&lt;ul&gt;&lt;li&gt;start：user 想要的位置，通常可不指定&lt;/li&gt;&lt;li&gt;prot: protection mode (read/write/exec/none)&lt;/li&gt;&lt;li&gt;flags:&lt;br /&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;MAP_PRIVATE: 另外取得自用的記憶體區塊，寫入只寫到自用的記憶體區塊，不會寫回檔案。&lt;/li&gt;&lt;li&gt;MAP_SHARED: 使用共用的記憶體區塊得以立即共用包括修改的部份，會寫回檔案，但可能不會立即寫回。&lt;/li&gt;&lt;li&gt;MAP_FIXED: mapped exactly at ADDR (must be page-aligned), otherwise a convenient nearby address is used.&lt;/li&gt;&lt;li&gt;...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;int msync(const void *start, size_t length, int flags);&lt;br /&gt;立即寫回檔案&lt;br /&gt;&lt;br /&gt;參考：&lt;a href="http://www.linuxjournal.com/article/6345" rel="nofollow"&gt;Zero Copy I: User-Mode Perspective&lt;/a&gt;&lt;br /&gt;在某些情況下，mmap() 可以取代 read() 減少一次將資料複製到 user space 的動作。&lt;br /&gt;&lt;br /&gt;參考：&lt;a href="http://blog.richliu.com/2006/10/17/369/" rel="nofollow"&gt;mmap Sample Code&lt;/a&gt;&lt;br /&gt;實體記憶體也是檔案 /dev/mem，mmap() 可以讓 user space 存取實體記憶體，例如週邊的 registers，如此便可以在 user space 設定週邊。但在 user space 要將資料寫到 kernel space 會花些時間。&lt;br /&gt;&lt;h3&gt;延伸閱讀&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;在驅動程式，ioremap 將 physical address 映射到 virtual address。&lt;/li&gt;&lt;li&gt;remap_page_range()：待研究&lt;/li&gt;&lt;/ol&gt;&lt;/sys&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-740713764435010030?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/740713764435010030/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=740713764435010030' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/740713764435010030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/740713764435010030'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2009/06/mmap-user-space.html' title='mmap @ user space'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-3936378904636744611</id><published>2009-06-24T16:55:00.001+08:00</published><updated>2009-06-24T16:57:39.424+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>讀 Zero Copy I: User-Mode Perspective</title><content type='html'>&lt;ul&gt;&lt;li&gt;使用 read(file, tmp_buf, len) 及 write(socket, tmp_buf, len) 會有四次 user/kernel context switches 及四次資料複製：hard disk -&gt; kernel buffer -&gt; user buffer -&gt; socket buffer -&gt; NIC&lt;/li&gt;&lt;li&gt;使用 tmp_buf = mmap(file, len) 及 write(socket, tmp_buf, len) 可共用 kernel buffer 及 user buffer，可減少一次複製，但需要處理 write() 的時候，file 有變更造成的錯誤&lt;/li&gt;&lt;li&gt;使用 sendfile(socket, file, len) 複製次數一樣，但 user/kernel context switches 變為兩次&lt;/li&gt;&lt;li&gt;如果 NIC 支援 gather，sendfile(socket, file, len) 可再減少一次複製，不用複製到 socket buffer 就能將資料傳給 NIC&lt;/li&gt;&lt;li&gt;有沒有可能直接 hard disk 到 NIC 呢？&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-3936378904636744611?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='related' href='http://www.linuxjournal.com/article/6345' title='讀 Zero Copy I: User-Mode Perspective'/><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/3936378904636744611/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=3936378904636744611' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/3936378904636744611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/3936378904636744611'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2009/06/zero-copy-i-user-mode-perspective.html' title='讀 Zero Copy I: User-Mode Perspective'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-7664750090189167255</id><published>2009-04-20T10:19:00.004+08:00</published><updated>2009-04-20T10:33:20.750+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Linux/Ubuntu 看公視免費 VOD</title><content type='html'>&lt;a href="http://www.pts.org.tw/php/vod/index.php?sublevel=2561"&gt;公視免費 VOD&lt;/a&gt; 播放時除了需要支援 Windows Media Player 格式外，也用到 ActiveX 控制項。在 Firefox 安裝擴充套件 &lt;a target="" href="https://addons.mozilla.org/zh-TW/firefox/addon/1879"&gt;MediaWrap&lt;/a&gt;，將 ActiveX 多媒體控制項轉換成 Firefox 可支援的形式 (&lt;a href="http://forum.moztw.org/viewtopic.php?t=12122"&gt;這裏&lt;/a&gt;有介紹)，雖然無法快轉，或中途看起 (可能在 Windows 下的 IE 也是如此)，但至少可以順利播放了。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-7664750090189167255?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/7664750090189167255/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=7664750090189167255' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7664750090189167255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7664750090189167255'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2009/04/linuxubuntu-vod.html' title='Linux/Ubuntu 看公視免費 VOD'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-909574131779430058</id><published>2009-04-10T14:16:00.004+08:00</published><updated>2009-04-10T14:30:33.240+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>hinedo 修改</title><content type='html'>今天心血來潮想聽一下許久未用的 &lt;a href="http://of.openfoundry.org/projects/814"&gt;hinedo&lt;/a&gt; 廣播，奇怪！等很久了，聲音一直沒出來靠網文「&lt;a href="http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?post_id=73403#forumpost73403"&gt;回覆: hinedo出問題&lt;/a&gt;」提出的方法解決，刪除 ~/.config/hinedo/play 裡一組&lt;br /&gt;&lt;pre&gt;page = download( url )&lt;br /&gt;reg = re.compile( 'HREF="([^"]*)".*&gt;', re.I|re.M )&lt;br /&gt;match = reg.search( page )&lt;br /&gt;url = match.group(1)&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-909574131779430058?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/909574131779430058/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=909574131779430058' title='1 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/909574131779430058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/909574131779430058'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2009/04/hinedo.html' title='hinedo 修改'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-7185001533704408131</id><published>2009-03-27T09:50:00.003+08:00</published><updated>2009-03-27T10:04:01.200+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>解決回收筒垃圾無法完全清除乾淨</title><content type='html'>回收筒中有垃圾，選擇「清除回收筒」後，回收筒中仍有垃圾，打開回收筒個別刪除，出現錯誤訊息「移除檔案時發生錯誤：拒絕不符權限的操作」，再看檔案的屬性是唯讀，可用下列暴力法清除：&lt;br /&gt;&lt;br /&gt;在 ubuntu8.04 下 Gnome 的資源回收筒的位於&lt;br /&gt;~/.local/share/Trash/files&lt;br /&gt;&lt;br /&gt;可利用 sudo 指令移除所有回收筒裡的檔案.&lt;br /&gt;sudo rm -rf ~/.local/share/Trash/files/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-7185001533704408131?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/7185001533704408131/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=7185001533704408131' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7185001533704408131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7185001533704408131'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2009/03/blog-post.html' title='解決回收筒垃圾無法完全清除乾淨'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-3139765255935433571</id><published>2008-07-23T09:04:00.002+08:00</published><updated>2008-07-23T09:08:30.679+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Apps'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>GnuPG</title><content type='html'>&lt;div class="viewer" macro="view text wikified"&gt;產生自己的金鑰，包含公鑰及私鑰&lt;br /&gt;&lt;pre&gt;gpg --gen-key&lt;br /&gt;&lt;/pre&gt;列出公鑰&lt;br /&gt;&lt;pre&gt;gpg --list-keys&lt;br /&gt;&lt;/pre&gt;預防私鑰遺失?&lt;br /&gt;&lt;ul&gt;&lt;li&gt; 將整個 .gnupg 目錄備份起來&lt;/li&gt;&lt;/ul&gt;文件加密給自己&lt;br /&gt;&lt;pre&gt;gpg -o doc.gpg -e -r me@my.domain doc_to_encrypt&lt;br /&gt;&lt;/pre&gt;文件解密&lt;br /&gt;&lt;pre&gt;gpg -o document -d encrypted_doc.gpg&lt;br /&gt;&lt;/pre&gt;備份目錄並加密給自己 (tar + lzma + gpg)&lt;br /&gt;&lt;pre&gt;MY_DATE=`date +'%Y%m%d'`&lt;br /&gt;tar cBpf - dir/to/backup | lzma -c | gpg -o backup.$MY_DATE.tar.lzma.gpg -e -r me@my.domain -&lt;br /&gt;&lt;/pre&gt;&lt;h3&gt;參考&lt;/h3&gt;&lt;ol&gt;&lt;li&gt; &lt;a target="_blank" title="External link to http://www.gentoo.org/doc/zh_tw/gnupg-user.xml" href="http://www.gentoo.org/doc/zh_tw/gnupg-user.xml" class="externalLink"&gt;GnuPG Gentoo 使用者指南&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;  &lt;!--}}}--&gt;&lt;!--{{{--&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-3139765255935433571?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/3139765255935433571/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=3139765255935433571' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/3139765255935433571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/3139765255935433571'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2008/07/gnupg.html' title='GnuPG'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-7661530666478381021</id><published>2008-05-21T08:42:00.000+08:00</published><updated>2008-05-21T08:44:03.094+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>不用 CD 的 Linux 安裝</title><content type='html'>一般的安裝方式是將發行套件的 iso 檔燒錄成光碟，再用此光碟開機來安裝到硬碟裡。如果電腦裡面本來就有 Windows 或 Linux 作業系統，就可以使用 &lt;a target="_blank" title="External link to http://unetbootin.sourceforge.net/" href="http://unetbootin.sourceforge.net/" class="externalLink"&gt;UNetbootin&lt;/a&gt; 安裝 Ubuntu 等 Linux 套件，不需要燒錄機、不浪費一片空白光碟片、不需要光碟機開機。&lt;br /&gt;&lt;br /&gt;在 Windows 下，其步驟很簡單，只需要：&lt;br /&gt;&lt;ol&gt;&lt;li&gt; 從 &lt;a target="_blank" title="External link to http://unetbootin.sourceforge.net/" href="http://unetbootin.sourceforge.net/" class="externalLink"&gt;UNetbootin&lt;/a&gt; 下載安裝程式並執行它&lt;/li&gt;&lt;li&gt; 選要安裝的 Linux 套件後按下 OK 重新開機&lt;/li&gt;&lt;li&gt; 選擇 UNetbootin 開機&lt;/li&gt;&lt;li&gt; 接下來就跟光碟安裝一樣。&lt;/li&gt;&lt;li&gt; 下次使用 Windows 開機時，便會問是否要移除 &lt;a target="_blank" title="External link to http://unetbootin.sourceforge.net/" href="http://unetbootin.sourceforge.net/" class="externalLink"&gt;UNetbootin&lt;/a&gt;。&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;其原理如 &lt;a target="_blank" title="External link to http://freesf.tw/modules/news/article.php?storyid=3337" href="http://freesf.tw/modules/news/article.php?storyid=3337" class="externalLink"&gt;UNetbootin 免用CD安裝各種Linux套件&lt;/a&gt; ：&lt;br /&gt;&lt;blockquote&gt;UNetbooin會修改開機載入程式(bootloader)，然後用修改過的bootloader來啟用 netboot initrd 和 kernel，然後直接由網路上下載安裝各種 Linux 套件，安裝完成後，再還原 bootloader。&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;後記&lt;br /&gt;&lt;ul&gt;&lt;li&gt; 上次採用 &lt;a target="_blank" title="External link to http://wiki.ubuntu.org.tw/index.php?title=%E5%85%8D%E5%85%89%E7%A2%9F%E5%AE%89%E8%A3%9D_Ubuntu_6.10&amp;amp;redirect=no" href="http://wiki.ubuntu.org.tw/index.php?title=%E5%85%8D%E5%85%89%E7%A2%9F%E5%AE%89%E8%A3%9D_Ubuntu_6.10&amp;amp;redirect=no" class="externalLink"&gt;免光碟安裝 Ubuntu 6.10&lt;/a&gt; 所說的步驟，下載網路安裝用映像檔時所用的 Ubuntu 檔案庫換成 &lt;a target="_blank" title="External link to http://archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/netboot/ubuntu-installer/i386/" href="http://archive.ubuntu.com/ubuntu/dists/gutsy/main/installer-i386/current/images/netboot/ubuntu-installer/i386/" class="externalLink"&gt;7.10 (gutsy)&lt;/a&gt;，而 &lt;a target="_blank" title="External link to http://unetbootin.sourceforge.net/" href="http://unetbootin.sourceforge.net/" class="externalLink"&gt;UNetbootin&lt;/a&gt; 將這些步驟自動化了。&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-7661530666478381021?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/7661530666478381021/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=7661530666478381021' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7661530666478381021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7661530666478381021'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2008/05/cd-linux.html' title='不用 CD 的 Linux 安裝'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-8579358954739139196</id><published>2008-05-16T16:38:00.001+08:00</published><updated>2008-05-16T16:40:28.262+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 8.04 安裝 acroread</title><content type='html'>由於 Ubuntu 8.04 預設的 evince 看 pdf 仍有中文破字問題 (可能是&lt;a target="_blank" title="External link to http://www.ubuntu.org.tw/modules/newbb/viewtopic.php?post_id=21253" href="http://www.ubuntu.org.tw/modules/newbb/viewtopic.php?post_id=21253" class="externalLink"&gt;新細明體跟標楷體字型&lt;/a&gt;的關係)，所以安裝 acroread。&lt;br /&gt;&lt;ol&gt;&lt;li&gt; 先&lt;a target="_blank" title="External link to http://jeulnet.blogspot.com/2008/05/ubuntu-804-medibuntu.html" href="http://jeulnet.blogspot.com/2008/05/ubuntu-804-medibuntu.html" class="externalLink"&gt;加入 Medibuntu 套件庫&lt;/a&gt;&lt;/li&gt;&lt;li&gt; &lt;code&gt;sudo apt-get install acroread&lt;/code&gt;，相依性關係多安裝了 gcc-3.3-base libstdc++5&lt;/li&gt;&lt;li&gt; 下載 &lt;a target="_blank" title="External link to http://www.adobe.com/products/acrobat/acrrasianfontpack.html" href="http://www.adobe.com/products/acrobat/acrrasianfontpack.html" class="externalLink"&gt;language pack&lt;/a&gt;，解開，執行 &lt;code&gt;sudo CHTKIT/INSTALL&lt;/code&gt; 安裝&lt;ul&gt;&lt;li&gt; 其中會問到 Adobe Reader 已安裝的目錄，其實是在 /usr/lib/Adobe 下，所以答：&lt;code&gt;/usr/lib&lt;/code&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-8579358954739139196?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/8579358954739139196/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=8579358954739139196' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/8579358954739139196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/8579358954739139196'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2008/05/ubuntu-804-acroread.html' title='Ubuntu 8.04 安裝 acroread'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-6942606201882645963</id><published>2008-05-16T15:42:00.003+08:00</published><updated>2008-05-16T16:53:38.072+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu 8.04 新增 Medibuntu 套件庫</title><content type='html'>由於版權、專利等限制，許多好用的 free 或 non-free (如 acroread、skype) 的軟體，沒放進官方的 Ubuntu 套件庫，而放在 &lt;a href="http://medibuntu.org/"&gt;Medibuntu (Multimedia, Entertainment &amp;amp; Distractions In Ubuntu)&lt;/a&gt;。&lt;br /&gt;&lt;br /&gt;參考：&lt;a href="https://help.ubuntu.com/community/Medibuntu#head-7486ed038a9becc1dff10a24cc07a38a00d70e9f"&gt;Medibuntu 之 Adding the Repositories&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;新增套件庫&lt;br /&gt;&lt;blockquote&gt;sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list&lt;/blockquote&gt;&lt;br /&gt;新增 GPG 驗證用的公鑰&lt;br /&gt;&lt;blockquote&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get install medibuntu-keyring &amp;amp;&amp;amp; sudo apt-get update&lt;/blockquote&gt;&lt;br /&gt;然後就可以新增想要的套件。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-6942606201882645963?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/6942606201882645963/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=6942606201882645963' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/6942606201882645963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/6942606201882645963'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2008/05/ubuntu-804-medibuntu.html' title='Ubuntu 8.04 新增 Medibuntu 套件庫'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-2363145115183955556</id><published>2008-03-20T11:55:00.003+08:00</published><updated>2008-03-20T12:00:34.509+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Ubuntu  7.10 -- rcp</title><content type='html'>Ubuntu 預設的 rcp 是用走 ssh 協定的 scp 取代，如要用原本的 rcp，則需安裝&lt;a href="apt:rsh-client"&gt;rsh-client&lt;/a&gt;。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-2363145115183955556?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/2363145115183955556/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=2363145115183955556' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/2363145115183955556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/2363145115183955556'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2008/03/ubuntu-710-rcp.html' title='Ubuntu  7.10 -- rcp'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-7562829611562325127</id><published>2008-02-19T15:04:00.002+08:00</published><updated>2008-05-16T15:53:00.448+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='A3V'/><title type='text'>ASUS A3V 的 ACPI driver</title><content type='html'>開機時出現這樣的訊息&lt;br /&gt;&lt;pre&gt;[   27.680000] Asus Laptop ACPI Extras version 0.30&lt;br /&gt;[   27.680000]   unsupported model A3V, trying default values&lt;br /&gt;[   27.680000]   send /proc/acpi/dsdt to the developers&lt;br /&gt;&lt;/pre&gt;在網路找到了這個網站 &lt;a target="_blank" title="External link to http://acpi4asus.sf.net" href="http://acpi4asus.sf.net/" class="externalLink"&gt;ACPI4Asus&lt;/a&gt;，想自行編譯新版的 driver 失敗，就不想往下搞。後來在 Ubuntu 的 bug report 看到這篇 &lt;a target="_blank" title="External link to https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/150091" href="https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/150091" class="externalLink"&gt;Asus Laptop: ACPI driver&lt;/a&gt;，原來 ubuntu 已有新的 asus-laptop 0.42 (還比 &lt;a tiddlylink="ACPI4Asus" refresh="link" class="tiddlyLink tiddlyLinkNonExisting" title="The tiddler 'ACPI4Asus' doesn't yet exist" href="javascript:;"&gt;ACPI4Asus&lt;/a&gt; 上的 0.41 新？？？)，只是會先抓到 asus_acpi，就不會再去抓 asus-laptop。換過來試試：&lt;br /&gt;&lt;pre&gt;rmmod asus_acpi&lt;br /&gt;modprobe asus-laptop&lt;br /&gt;&lt;/pre&gt;dmesg 裡可以看到：&lt;br /&gt;&lt;pre&gt;[ 6628.084000] asus-laptop: Asus Laptop Support version 0.42&lt;br /&gt;[ 6628.088000] asus-laptop:   A3V model detected&lt;br /&gt;[ 6628.116000] Registered led device: asus:mail&lt;br /&gt;&lt;/pre&gt;我的 &lt;a tiddlylink="A3V" refresh="link" class="tiddlyLink tiddlyLinkExisting" title="A3V - jeul, 2008年01月18日 (週五) 11時56分00秒" href="javascript:;"&gt;A3V&lt;/a&gt; 只會抓 asus_acpi，不會去抓 asus-laptop。所以暫時把 asus_acpi 列為黑名單，在 /etc/modprobe.d/blacklist 後面加上&lt;br /&gt;&lt;pre&gt;blacklist asus_acpi&lt;br /&gt;&lt;/pre&gt;再把 asus-laptop 加到 /etc/modules 的後面。&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;後記：&lt;br /&gt;此問題在 Ubuntu 8.04 已解決&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-7562829611562325127?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/7562829611562325127/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=7562829611562325127' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7562829611562325127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7562829611562325127'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2008/02/asus-a3v-acpi-driver.html' title='ASUS A3V 的 ACPI driver'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-8811212702248049302</id><published>2008-02-13T22:13:00.003+08:00</published><updated>2008-02-29T15:05:48.596+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='device'/><title type='text'>固態硬碟簡介</title><content type='html'>最後修改：2008/02/29&lt;br /&gt;&lt;br /&gt;來自 ZDNet 文章 &lt;a href="http://www.zdnet.com.tw/news/ce/0,2000085674,20127576,00.htm?feed=RSS:+ZDNet+Taiwan%3A+%B7s%BBD+-+%B3%CC%AA%F1%A4C%A4%D1"&gt;低價電腦領軍 固態硬碟市場成長可期&lt;/a&gt;:&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;固態硬碟係以NAND Flash為基礎，模擬動態隨機存取記憶體（DRAM）基本的存取模式，可以達到資料隨機存取的高速傳輸。根據SanDisk提供的資料，裝有2.5吋 SanDisk固態硬碟的筆記型電腦，能在30秒內啟動Windows Vista企業版作業系統，並以平均0.11毫秒的速度存取檔案。相較之下，使用傳統硬碟的筆記型電腦，平均需要48秒開機，耗費17毫秒來存取檔案。 &lt;/p&gt;&lt;p&gt; 另外，相較於在運轉啟用期間需要消耗1.9瓦的標準硬碟，SanDisk固態硬碟在運轉啟用時消耗1.0瓦，閒置時則低至0.4瓦。&lt;/p&gt; 雖然具有上述優點，但是由於相較於傳統硬碟，固態硬碟的單位成本約為10倍之多.....&lt;/blockquote&gt;使用 NAND Flash，所以是有使用壽命的。&lt;h3&gt;延伸閱讀&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.notebookreview.com/default.asp?newsID=4258"&gt;SDHC Cards vs Hard Drive vs SSD&lt;/a&gt; -- 真正的 SSD 最快，SDHC 是比 HDD 慢，但 SDHC 存取時間較固定，不像 HDD 變化很大&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-8811212702248049302?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/8811212702248049302/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=8811212702248049302' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/8811212702248049302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/8811212702248049302'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2008/02/blog-post.html' title='固態硬碟簡介'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-4086200411006769245</id><published>2008-02-13T16:18:00.002+08:00</published><updated>2008-02-13T16:23:55.527+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='VServer'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><title type='text'>Linux-VServer -- 建立 host</title><content type='html'>只需要選用一個支援 vserver 的 kernel 及安裝管理 guest 的程式。&lt;blockquote&gt;apt-get install linux-image-vserver-686 util-vserver&lt;/blockquote&gt;&lt;h3&gt;參考文獻&lt;/h3&gt;&lt;ol&gt;&lt;li&gt; http://linux-vserver.org/Installation_on_Debian&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-4086200411006769245?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/4086200411006769245/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=4086200411006769245' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/4086200411006769245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/4086200411006769245'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2008/02/linux-vserver-host.html' title='Linux-VServer -- 建立 host'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-7986711273335856029</id><published>2007-12-14T20:21:00.000+08:00</published><updated>2007-12-14T20:25:32.676+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>OpenWrt 開發環境 -- 編譯</title><content type='html'>原文出處：&lt;a title="OpenWrt Documentation" href="http://downloads.openwrt.org/kamikaze/docs/openwrt.html" id="uo53"&gt;OpenWrt Documentation&lt;/a&gt;&lt;br /&gt;前文：&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://jeulnet.blogspot.com/2007/12/openwrt.html"&gt;OpenWrt 開發環境 -- 簡介&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://jeulnet.blogspot.com/2007/12/openwrt_13.html"&gt;OpenWrt 開發環境 -- 目錄結構&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;執行指令 `make menuconfig` 會出現 OpenWrt 的設定選單，讓你選擇 target 平台、toolchain 版本、打算安裝到韌體的套件。它也會檢查所需要的工具程式是否滿足。&lt;br /&gt;&lt;br /&gt;類似 Linux kernel 的設定，大部分的項目有3個選項 -- y/m/n，如下：&lt;br /&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&amp;lt;*&amp;gt; (按 y)&lt;br /&gt;將編譯包含在韌體影像檔裡。      &lt;/li&gt;&lt;li&gt;&amp;lt;M&amp;gt; (按 m)&lt;br /&gt;將編譯但不包含在韌體影像檔裡 (後續安裝用)。      &lt;/li&gt;&lt;li&gt;&amp;lt; &amp;gt; (按 n)&lt;br /&gt;不編譯。&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;做完設定後離開 (exit)，提示你儲存設定。&lt;br /&gt;&lt;br /&gt;必要的話，也可以執行 `make kernel_menuconfig` 來改變此 target 的 linux kernel 選項。編譯系統會 unpack the kernel sources (if necessary)，進到裡面執行 menuconfig，然後複製設定檔到 target/linux/&amp;lt;platform&amp;gt;/config，如此一來 `make clean` 時還有一份保留的設定。&lt;br /&gt;&lt;br /&gt;執行 `make` 開始編譯。OpenWrt 預設只顯示編譯過程中的大綱，而不顯示每一個執行的命令。便於觀看它做了哪些大項步驟，免於受到大量編譯輸出的干擾。例如：&lt;br /&gt; &lt;blockquote&gt;make[2] toolchain/install&lt;br /&gt;make[3] -C toolchain install&lt;br /&gt;make[2] target/compile&lt;br /&gt;make[3] -C target compile&lt;br /&gt;make[4] -C target/utils prepare&lt;br /&gt;&lt;br /&gt;[...]&lt;br /&gt;&lt;/blockquote&gt;如果要看完整輸出，執行指令 `make V=99`。&lt;br /&gt;&lt;br /&gt;在編譯過程，buildroot 將下載所有來源檔案到 "dl" 目錄，然後在 "build_&amp;lt;arch&amp;gt;" 目錄做補丁及編譯他們。完成後，韌體放在 "bin" 目錄，套件會放在 "bin/packages" 目錄。&lt;p&gt; &lt;/p&gt;&lt;h3&gt;參考文獻&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a title="OpenWrt Documentation" href="http://downloads.openwrt.org/kamikaze/docs/openwrt.html" id="uo53"&gt;OpenWrt Documentation&lt;/a&gt; [OpenWrt]&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-7986711273335856029?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/7986711273335856029/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=7986711273335856029' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7986711273335856029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7986711273335856029'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/12/openwrt-documentation-openwrt-openwrt.html' title='OpenWrt 開發環境 -- 編譯'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-1553607386120286651</id><published>2007-12-13T08:19:00.000+08:00</published><updated>2007-12-28T16:55:39.100+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>OpenWrt 開發環境 -- 目錄結構</title><content type='html'>最後修改：2007/12/28&lt;br /&gt;原文出處：&lt;a title="OpenWrt Documentation" href="http://downloads.openwrt.org/kamikaze/docs/openwrt.html" id="uo53"&gt;OpenWrt Documentation&lt;/a&gt;&lt;br /&gt;前文：&lt;a href="http://jeulnet.blogspot.com/2007/12/openwrt.html"&gt;OpenWrt 開發環境 -- 簡介&lt;/a&gt;&lt;h3&gt;下載 OpenWrt&lt;/h3&gt;這裡講的是 OpenWrt 的一個分支 -- "Kamikaze" (神風特攻隊)，可透過 &lt;a href="http://subversion.tigris.org/"&gt;subversion&lt;/a&gt; 下載：&lt;br /&gt;&lt;blockquote&gt;$ svn co &lt;a href="https://svn.openwrt.org/openwrt/trunk"&gt;https://svn.openwrt.org/openwrt/trunk&lt;/a&gt; kamikaze&lt;br /&gt;&lt;/blockquote&gt;此外，在 &lt;a href="http://dev.openwrt.org/"&gt;http://dev.openwrt.org/&lt;/a&gt; 有提供 &lt;a href="http://trac.edgewall.org/"&gt;trac&lt;/a&gt; 介面，用來觀看 svn 的送交及瀏覽原始碼。&lt;h3&gt;目錄結構&lt;/h3&gt;OpenWrt 有四個重要的目錄&lt;br /&gt;&lt;ul&gt;&lt;li&gt; tools 及 toolchain&lt;br /&gt;指一些在 Host 上用來建立韌體影像檔、跨平台編譯器、以及 C 函式庫的共通工具程式，編譯工具程式會產生下面三個目錄：&lt;/li&gt;&lt;ul&gt;&lt;li&gt;tool_build： 為了建立一些跟 target 無關的工具的地方&lt;/li&gt;&lt;li&gt;toolchain_build_&amp;lt;arch&amp;gt;&gt;：在這裡進行工具程式編譯。&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;staging_dir_&amp;lt;arch&amp;gt;：編譯出來的工具程式安裝在這裡。&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;package&lt;br /&gt;就是套件。在 OpenWrt 的韌體，幾乎所有東西都是 .ipk -- 一種軟體的套件，可以加到韌體來提供新 feature，或移除來節省一些空間。&lt;/li&gt;&lt;li&gt;target&lt;br /&gt;指的是嵌入式平台，包括各式嵌入式平台的項目。&lt;/li&gt;&lt;ul&gt;&lt;li&gt;target/linux：底下再分成各式平台的目錄，裡面包含其 kernel 補丁，及 profile config 等。&lt;/li&gt;&lt;li&gt;target/imagebuilder：描述如何打包特定平台的韌體。&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;另外有些套件不是在 OpenWrt 主幹內維護的，可以透過 subversion 取得：&lt;blockquote&gt;$ svn checkout https://svn.openwrt.org/openwrt/packages packages&lt;/blockquote&gt;這些套件用來擴充系統功能，需要 symlinked into the main trunk，這樣這些套件就會顯示在設定選單。在上一層目錄：&lt;br /&gt;&lt;blockquote&gt;$ ls&lt;br /&gt;kamikaze  packages&lt;br /&gt;$ ln -s packages/net/nmap kamikaze/package/nmap  &lt;/blockquote&gt;包含所有套件，使用下列指令：&lt;blockquote&gt;$ ln -s packages/*/* kamikaze/package/&lt;/blockquote&gt;其他目錄：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;dl：在此放 toolchain、target 及 package 下載的檔案。&lt;/li&gt;&lt;li&gt;build_&amp;lt;arch&amp;gt;：在此進行編譯 target 及 package。&lt;/li&gt;&lt;li&gt;bin：放編譯後的韌體及套件&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;參考文獻&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a title="OpenWrt Documentation" href="http://downloads.openwrt.org/kamikaze/docs/openwrt.html" id="uo53"&gt;OpenWrt Documentation&lt;/a&gt; [OpenWrt]&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-1553607386120286651?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/1553607386120286651/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=1553607386120286651' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/1553607386120286651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/1553607386120286651'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/12/openwrt_13.html' title='OpenWrt 開發環境 -- 目錄結構'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-5244291724350377181</id><published>2007-12-13T08:17:00.000+08:00</published><updated>2008-01-03T12:57:03.836+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>OpenWrt 開發環境 -- 簡介</title><content type='html'>最後修改：01/03/2007&lt;br /&gt;原文出處：&lt;a title="OpenWrt" href="http://openwrt.org/" id="xv:b"&gt;OpenWrt&lt;/a&gt; 及 &lt;a title="OpenWrt Documentation" href="http://downloads.openwrt.org/kamikaze/docs/openwrt.html" id="uo53"&gt;OpenWrt Documentation&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OpenWrt 是一個嵌入式設備的 Linux 發行版本。它提供套件管理功能 (ipkg)，讓使用者可以選擇要用的、移除不需要的功能，而不是只能用硬體原始供應商提供的固定韌體。另外，OpenWrt 提供的骨架 (framework)，可以讓開發者針對單一套件來做開發。&lt;br /&gt;&lt;br /&gt;嵌入式設備通常跟你的開發主機 (Host，如：桌上型電腦) 是不相容的硬體平台，所以需要一個跨平台的編譯環境來產生程式碼給嵌入式平台執行。建立跨平台編譯器的過程中可能會遇到一些額外的問題，需要一些技術才能解決。為了節省時間及功夫，大多會使用別人做好的現成二進位的編譯器及函式庫的複本，但這種方式通常代表使用的是較舊的版本。同樣地，你可能使用板子或晶片供應商所提供的更改過的 Linux kernel 及應用程式，這些也可能是過時的，且很難辨認出他們所更改的地方到底是哪些。&lt;h3&gt;OpenWrt 的編譯環境&lt;/h3&gt;OpenWrt 提供模版 (template)，針對某個平台的程式是經過從源頭下載原始檔、補丁、以及編譯的方式產生，包括編譯器也是用這種全自動方法產生，OpenWrt 本身不包含執行檔，甚至原始檔。只要改變模版，就可以改變過程中的步驟。&lt;br /&gt;&lt;br /&gt;例如，當新版的 Linux kernel 釋出，只需修改 Makefile 去下載新版的 Linux kernel，剩下的補丁及編譯都照舊，不用一一檢視新版的 kernel 改了什麼。其他部份也是一樣，讓 OpenWrt 很容易使用最新釋出的編譯工具、核心、及應用程式。&lt;br /&gt;&lt;h3&gt;參考文獻&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a title="OpenWrt" href="http://openwrt.org/" id="xv:b"&gt;OpenWrt&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="An introduction to Buildroot-ng" href="http://forum.openwrt.org/viewtopic.php?pid=31794" id="l4w6"&gt;An introduction to Buildroot-ng&lt;/a&gt; [OpenWrt]&lt;/li&gt;&lt;li&gt;&lt;a title="OpenWrt Documentation" href="http://downloads.openwrt.org/kamikaze/docs/openwrt.html" id="uo53"&gt;OpenWrt Documentation&lt;/a&gt; [OpenWrt]&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-5244291724350377181?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/5244291724350377181/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=5244291724350377181' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/5244291724350377181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/5244291724350377181'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/12/openwrt.html' title='OpenWrt 開發環境 -- 簡介'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-1990444138096640030</id><published>2007-12-13T08:15:00.002+08:00</published><updated>2008-03-06T17:05:21.106+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fs'/><title type='text'>安裝並使用 sshfs</title><content type='html'>最後修改：2007/03/06&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fuse.sourceforge.net/sshfs.html" id="xefc" title="sshfs"&gt;sshfs&lt;/a&gt; 是透過 SSH File Transfer Protocol (sftp) 協定，以 ssh 加密的方式來掛載其他機器的特定目錄。&lt;ul&gt;&lt;li&gt;安裝 sshfs 請見&lt;a href="http://wiki.ubuntu.org.tw/index.php/HowtoInstallSSHFS"&gt;這裡&lt;/a&gt;&lt;/li&gt;&lt;li&gt;可將自己加入 fuse 群組(需重新 login 才會生效，可用 `groups`指令檢視是否已加入 fuse 群組) 就可以不用 root 權限，指令為&lt;blockquote&gt;sshfs [remoteuser@]remote:[remotedir] /local/mount/point&lt;/blockquote&gt;其中 remoteuser 及 remotedir 是可以省略的部份&lt;/li&gt;&lt;li&gt;卸載用 `fusermount -u /local/mount/point`&lt;/li&gt;&lt;li&gt;svn checkout 無法在 sshfs 目錄使用，會有錯誤訊息『svn: 無法搬移 'xxx/.svn/tmp/entries' 至 'xxx/.svn/entries': 此項操作並不被允許』。(會不會是 default_permission 的關係？？？)&lt;/li&gt;&lt;li&gt;svk checkout 可以。&lt;/li&gt;&lt;li&gt;將  CP950 (或 big5) 編碼轉換成 UTF-8&lt;blockquote&gt;sshfs remoteuser@remote:remotedir /local/mount/point -omodules=iconv,from_code=CP950&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;其它 sshfs 及 fuse 選項如 sshfs_sync、default_permission、kernel_cache、hard_remove 等等請 man sshfs&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;   延伸閱讀 &lt;/h3&gt; &lt;ol&gt;&lt;li&gt;&lt;a href="http://blog.linux.org.tw/%7Ejserv/archives/001866.html"&gt;sshfs 在 Embedded Linux 開發的應用&lt;/a&gt; [Jserv's blog]   &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-1990444138096640030?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/1990444138096640030/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=1990444138096640030' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/1990444138096640030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/1990444138096640030'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/12/sshfs.html' title='安裝並使用 sshfs'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-7445957266209861973</id><published>2007-12-13T08:13:00.000+08:00</published><updated>2007-12-13T08:14:31.431+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>DNS 設定</title><content type='html'>&lt;h3&gt;基本檔案&lt;/h3&gt;/etc/resolv.conf：指定自己的 DNS。&lt;br /&gt;/etc/hosts：DNS 的前身，本機使用的列表，記錄主機名稱或者別名對應的 IP。&lt;br /&gt;/etc/host.conf：決定 /etc/hosts file 與 /etc/resolv.conf 優先權順序。&lt;h3&gt;BIND DNS server 設定&lt;/h3&gt;主設定檔是 /etc/bind/named.conf，可能包括進來其他設定檔 (include "其他設定檔名";)。包括 zone 設定及其正查反查資料庫。&lt;br /&gt;&lt;h3&gt;參考文獻&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a title="DNS server 安裝架設" href="http://kalug.linux.org.tw/%7Elloyd/LLoyd_Hand_Book/book/x904.html" id="d-b0"&gt;DNS server 安裝架設&lt;/a&gt; [LLoyd Huang Hand Book, 2001]&lt;/li&gt;&lt;li&gt;&lt;a title="連上 Internet" href="http://linux.vbird.org/linux_server/0130internet_connect.php" id="ctth"&gt;連上 Internet&lt;/a&gt; [鳥哥的 Linux 私房菜]&lt;/li&gt;&lt;li&gt;&lt;a title="DNS 伺服器" href="http://linux.vbird.org/linux_server/0350dns.php" id="v-_2"&gt;DNS 伺服器&lt;/a&gt; [鳥哥的 Linux 私房菜]&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-7445957266209861973?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/7445957266209861973/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=7445957266209861973' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7445957266209861973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/7445957266209861973'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/12/dns.html' title='DNS 設定'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-558338839311982281</id><published>2007-12-13T08:11:00.000+08:00</published><updated>2007-12-13T08:12:54.474+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='A3V'/><title type='text'>Ubuntu 下的 A3V 硬碟燈</title><content type='html'>發現最近硬碟燈一直亮著，記得原本不會啊！重新改用 Windows XP 開機，硬碟燈是正常的。在改開回 Ubuntu，嗯~變正常了，真奇怪。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-558338839311982281?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/558338839311982281/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=558338839311982281' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/558338839311982281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/558338839311982281'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/12/windows-xp-ubuntu.html' title='Ubuntu 下的 A3V 硬碟燈'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-5123804793412696682</id><published>2007-11-25T19:29:00.000+08:00</published><updated>2007-11-25T19:35:55.714+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>uClinux 新增應用程式</title><content type='html'>&lt;ol&gt;&lt;li&gt;mkdir uClinux-dist/user/hello&lt;/li&gt;&lt;li&gt;cp uClinux-dist/user/ping/Makefile uClinux-dist/user/hello&lt;/li&gt;&lt;li&gt;編輯 uClinux-dist/user/test/hello.c，內容如下：&lt;br /&gt;&lt;blockquote&gt;#include &amp;lt;stdio.h&gt;&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt;     printf("Hello, World\n");&lt;br /&gt;         return 0;&lt;br /&gt;}&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;uClinux 設定&lt;/li&gt;&lt;ol&gt;&lt;li&gt;在 uClinux-dist/user/Makefile 新增一行:&lt;br /&gt;&lt;blockquote&gt;dir_$(CONFIG_USER_HELLO_HELLO)              += hello&lt;/blockquote&gt;注：如果有多個執行檔時：&lt;blockquote&gt;dir_$(CONFIG_USER_HELLO_PROG1) += prog1&lt;br /&gt;dir_$(CONFIG_USER_HELLO_PROG2) += prog2&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;(選擇性的) 編輯 uClinux-dist/config/Configure.help 來新增程式說明：&lt;br /&gt;&lt;blockquote&gt;CONFIG_USER_HELLO_HELLO&lt;br /&gt;This is the hello program&lt;br /&gt;&lt;/blockquote&gt;注：說明內容每行前面都要有兩個空白，且最多 70 的字元，不能有空白行。&lt;br /&gt;&lt;/li&gt;&lt;li&gt;在 uClinux/config/config.in 適當的 section 加上，例如 Miscellaneous Applications：&lt;br /&gt;&lt;blockquote&gt;bool 'hello'                    CONFIG_USER_HELLO_HELLO&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt; make config_menuconfig，選用 hello&lt;br /&gt;&lt;blockquote&gt;Miscellaneous Applications  ---&gt;&lt;br /&gt;[*] hello&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;make&lt;/li&gt;&lt;li&gt;將 hello 程式上載到 target，並執行做測試&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;參考資料&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a title="Adding User Applications" href="http://docs.blackfin.uclinux.org/doku.php?id=adding_user_applications" name="adding_user_applications" id="adding_user_applications"&gt;Adding User Applications&lt;/a&gt;&lt;a title="Application Development" href="http://docs.blackfin.uclinux.org/doku.php?id=application_development" name="application_development" id="application_development"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Application Development" href="http://docs.blackfin.uclinux.org/doku.php?id=application_development" name="application_development" id="application_development"&gt;Application Development&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Simple Hello World Application Example" href="http://docs.blackfin.uclinux.org/doku.php?id=simple_hello_world_application_example" id="ojxn"&gt;Simple Hello World Application Example&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-5123804793412696682?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/5123804793412696682/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=5123804793412696682' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/5123804793412696682'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/5123804793412696682'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/11/uclinux.html' title='uClinux 新增應用程式'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-9155608529577231759</id><published>2007-11-16T20:00:00.002+08:00</published><updated>2008-04-22T16:53:24.207+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='fs'/><category scheme='http://www.blogger.com/atom/ns#' term='Embedded'/><title type='text'>uClinux for NFS client</title><content type='html'>Customize Kernel Setting 部份，檔案系統新增 NFSv3 client 支援：&lt;br /&gt;&lt;blockquote&gt; File Systems --&gt; Network File Systems --&gt;&lt;br /&gt;&lt;*&gt; NFS file system support&lt;br /&gt;[*]   Provide NFSv3 client support&lt;/blockquote&gt;如要用 nfs 作為 Root file system，則再加&lt;blockquote&gt;[*] Root file system on NFS&lt;/blockquote&gt;Customize Vendor/User Settings 部份，要讓 BusyBox 的 mount 支援 NFS，首先 BusyBox 要開 RFC support，然後 mount 才會出現 Support mounting NFS file systems。如果是用 nolock 方式 mount，portmap 是不需要的。&lt;br /&gt;&lt;blockquote&gt;Network Applications --&gt;&lt;br /&gt;[*] portmap&lt;br /&gt;BusyBox --&gt;&lt;br /&gt;[*] BusyBox&lt;br /&gt;[*] RPC support&lt;br /&gt;--- --###-- LINUX SYSTEM UTILITIES --###--&lt;br /&gt;[*] mount&lt;br /&gt;[*]    Support mounting NFS file systems&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;編譯、更新到 target、重新開機後執行：&lt;br /&gt;不使用 portmap 時：&lt;br /&gt;&lt;blockquote&gt;mount -o rsize=1024,wsize=1024,nolock \&lt;br /&gt;&amp;lt;nfs-server-ip&gt;:&amp;lt;nfs-server-exported-dir&gt; &amp;lt;local-mount-point&gt;&lt;/blockquote&gt;或使用 portmap 時：&lt;br /&gt;&lt;blockquote&gt;portmap&amp;amp;&lt;br /&gt;mount -o rsize=1024,wsize=1024 \&lt;br /&gt;&amp;lt;nfs-server-ip&gt;:&amp;lt;nfs-server-exported-dir&gt; &amp;lt;local-mount-point&gt;&lt;/blockquote&gt;&lt;br /&gt;注：把 nfs 的 IO buffer 限制為 1 KByte (rsize=1024,wsize=1024) 可以增加穩定性，但不是必要的。&lt;br /&gt;&lt;h3&gt;參考文獻&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a title="Enabling NFS" href="http://docs.blackfin.uclinux.org/doku.php?id=enabling_nfs" id="j.vd"&gt;Enabling NFS&lt;/a&gt; (Blackfin Linux Docs)&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;延伸閱讀&lt;/h3&gt;&lt;ol&gt;&lt;li&gt; &lt;a class="l" href="http://www.jollen.org/blog/2006/09/_powerpc_powerpc.html"&gt;PowerPC 衝吧！&lt;/a&gt; [Jollen 的 Blog]&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.blackfin.uclinux.org/doku.php?id=enabling_smb" name="enabling_smb_cifs_support" id="enabling_smb_cifs_support"&gt;Enabling SMB/CIFS Support&lt;/a&gt; [Blackfin Linux Docs]：透過 SMB 來 mount&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.linux.org.tw/%7Ejserv/archives/001866.html"&gt;sshfs 在 Embedded Linux 開發的應用&lt;/a&gt; [Jserv's blog]：透過 ssh 來 mount&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.ssh.tw/?p=968"&gt;Mount ftpfs&lt;/a&gt; [sshlog]：透過 ftp 來 mount&lt;/li&gt;&lt;li&gt;&lt;a href="http://go-linux.blogspot.com/2007/07/ubuntu-nfs-server.html"&gt;Ubuntu 架設nfs server&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-9155608529577231759?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/9155608529577231759/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=9155608529577231759' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/9155608529577231759'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/9155608529577231759'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/11/uclinux-for-nfs-client.html' title='uClinux for NFS client'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-6109244810018200617</id><published>2007-11-16T19:58:00.000+08:00</published><updated>2007-11-29T08:56:25.996+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='device'/><category scheme='http://www.blogger.com/atom/ns#' term='A3V'/><title type='text'>ASUS NB A3V 開機熱鍵</title><content type='html'>我的 NB 是有 com port 的 ASUS A3V -- A3Vc。紀錄一下開機熱鍵方便以後查詢：&lt;br /&gt;&lt;ul&gt;&lt;li&gt;[Esc] -- 開機選擇。&lt;br /&gt;&lt;/li&gt;&lt;li&gt;[Tab] -- 看 POST (Power On Self Test) 結果。&lt;br /&gt;&lt;/li&gt;&lt;li&gt;[F2] -- 進入 BIOS 設定。&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;延伸閱讀&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a title="使用手冊" href="http://dlsvr01.asus.com/pub/ASUS/nb/A3Ac/t2224_a3_hw.pdf" id="robp"&gt;使用手冊&lt;/a&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-6109244810018200617?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/6109244810018200617/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=6109244810018200617' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/6109244810018200617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/6109244810018200617'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/11/asus-nb-a3v.html' title='ASUS NB A3V 開機熱鍵'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3367537455844008432.post-6071535362146160644</id><published>2007-11-01T21:29:00.000+08:00</published><updated>2007-11-01T23:00:39.055+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blogger'/><title type='text'>Blogger 內建搜尋</title><content type='html'>在&lt;a href="http://keukusolog.blogspot.com/2007/07/blog-post.html"&gt;文章標籤之應用與用法&lt;/a&gt;看到，摘錄如下：&lt;br /&gt;&lt;blockquote&gt;新增網頁元素並放入以下語法：&lt;br /&gt;&lt;br /&gt;&amp;lt;form id="searchthis" action="/search" method="get"&gt;&lt;br /&gt;&amp;lt;input id="search-box" name="q" type="text"&gt;&lt;br /&gt;&amp;lt;input id="search-btn" value="&lt;span style="color: rgb(255, 0, 0);"&gt;搜尋&lt;/span&gt;"type="submit"&gt;&lt;br /&gt;&amp;lt;/form&gt;&lt;br /&gt;"&lt;span style="color: rgb(255, 0, 0);"&gt;搜尋&lt;/span&gt;"是送出資料的按鈕上的文字，可以改成自己喜歡的..&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3367537455844008432-6071535362146160644?l=jeulnet.blogspot.com'/&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jeulnet.blogspot.com/feeds/6071535362146160644/comments/default' title='張貼意見'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3367537455844008432&amp;postID=6071535362146160644' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/6071535362146160644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3367537455844008432/posts/default/6071535362146160644'/><link rel='alternate' type='text/html' href='http://jeulnet.blogspot.com/2007/11/blogger_01.html' title='Blogger 內建搜尋'/><author><name>jeul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='05077766105070742888'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>