tag:blogger.com,1999:blog-91611272024-02-19T12:37:37.370+08:00malo's note單純的分享malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.comBlogger71125tag:blogger.com,1999:blog-9161127.post-67523676417140822162012-09-22T19:19:00.001+08:002012-09-22T19:30:40.037+08:00linux 硬體時間hwclock 也有時區!今天在處理ntp功能才發現<br />
因為在我把/etc/localtime改為+8的台灣時間後<br />
使用ntpdate把時間調整過後,並 hwclock -w寫入RTC中<br />
再重新開機,結果時間就錯了!!<br />
hwclock 是正確的+8時間<br />
但date得到的時間就是這個時間再+8,整個大錯亂<br />
詳細了解後才知道,原來除了date有時區設定檔/etc/localtime以外<br />
hwclock也有時區設定檔 /etc/TZ<br />
cat /etc/TZ 得到 「<span style="font-size: 14px;">MST7MDT」</span><br />
<span style="font-size: 14px;">上網查得知這是-7的時區-->我會得到差8,也許是日光節約吧…(maybe)</span><br />
<span style="font-size: 14px;">所以就把它改為「</span><span style="font-size: 14px;">TAIST-8TAIDT」 --> 網路上查來的,+8台灣時區</span><br />
<span style="font-size: 14px;"><br /></span>
<span style="font-size: 14px;">!!but!!重開後沒有用!!</span><br />
<span style="font-size: 14px;"><br /></span>
<span style="font-size: 14px;">所以囉,再找</span><br />
<span style="font-size: 14px;">找到這一篇</span><br />
<span style="font-size: 14px;">http://wiki.debian.org.hk/w/Set_date_and_time</span><br />
<b>上面說明使用 </b><br />
hwclock --systohc --utc # 將UTC時間存入RTC<br />
hwclock --systohc
--localtime # 將LOCAL時間存入RTC<br />
hwclock --systohc<br />
沒有指定LOCAL or UTC,hwclock 根據配置來確定RTC裡面存LOCAL orUTC<br />
找
配置文件的優先級順序為:<br />
$ADJTIME_PATH、/var/state/adjtime、/var/lib/hwclock/adjtime、/etc/adjtime<br />
配
置文件內有寫LOCAL 或 RTC<br />
沒有配置文件的話,hwclock認為RTC裡面存的是LOCAL<br />
<br />
加上--utc,指定要用utc設定時間硬體時間 <br />
這樣重開機date得到的時間就正常了<br />
而hwclock的時間則變成了utc的時間<br />
但…產生另一個問題,不過也不是很重要吧!!<br />
hwclock -l 記了utc時間 -->正常應該是localtime<br />
hwclock -u 記了localtime時間 --> 正常應該是 utc!!<br />
<br />
<strike>我強烈的感覺,是不是hwclock在build的時候就指定了它的時區了?</strike><br />
<strike>不然怎麼會設定都沒用!!</strike><br />
<br />
ps:後來看到網路上,一位高手的解釋,才恍然大悟<br />
hwclock --local/--utc 的意義是:假設BIOS時鐘的時間是當地/UTC時間,將它讀出來,再按當時時間顯示出來。<br />
<br />
所以<br />
hwclock 若是11:30:00 (預設為local)<br />
hwclock --utc 為19:30:00 -->因為把RTC(BIOS)視為UTC時間,再轉為當地時間就是19:30:00了<br />
hwclock --local --> 把RTC視為Local時間,所以讀出來後不再轉換 <br />
<br />
<span style="font-size: 14px;"> </span><span style="font-size: 14px;"> </span> malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-25373363261372307922012-06-25T23:22:00.001+08:002012-06-25T23:22:39.582+08:00FTP Server vsftpd in openWrt真的要下傳下載東西到裝置上還是要有FTP比較方便<br />
因此,就開始了安裝FTP的測試<br />
<br />
<br />因為sftp (ssh ftp)沒有辨法匿名登入,下載東西<br />因此安裝vsftpd來提供ftp服務<br />
<br />
一、手動安装vsftpd<br />opkg update<br />opkg install vsftpd<br /><br />這是在openwrt中已經預先compile好的軟體清單中的一件<br />說明如下:<br /><br />Package: vsftpd<br />Version: 2.3.4-3<br />Depends:<br />Provides:<br />Source: feeds/packages/net/vsftpd<br />Section: net<br />Status: unknown ok not-installed<br />Essential: no<br />Priority: optional<br />Maintainer: Cezary Jackiewicz <cezary@eko.one.pl><br />Architecture: ar71xx<br />Installed-Size: 41186<br />Filename: vsftpd_2.3.4-3_ar71xx.ipk<br />Size: 41585<br />MD5Sum: a2935f298825ebe89b7fd6eb78de4752<br />Description: A fast and secure FTP server<br /><br />整個清單資料,下指令可取得<br />cat opkg-lists/snapshots |less<br /><br />裝好後,即使重開機也不會執行<br />因為目前存在一個bug,所以如果你希望vsftpd自啟動,就需要手工將啟動腳本加入rc.d目錄<br />(在openwrt中好像習慣在init.d中放script檔,而在rc.d中放要執行的命令,這些命令都是連到 init.d中的<br />ln -s /etc/init.d/vsftpd /etc/rc.d/S50vsftpd<br /><br />二、使用網頁的方式安裝,這個方式真的很方便丫!</cezary@eko.one.pl><br />
<br />
1. 先選擇「System / Software」,然後點選「Update lists」,取得最新的套件清單<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXXpsoLMoFLkvS0G2YVHd5_Gj5nxswWj598bPQvhveh97EYi_wSo0xmZSdUnBx4c8qQv8FTQTSZPUQJNanEWTtLvIF8cMJbGbm5dbUPtXZodNMZQaJELdX1VWb0iWy4mdO029/s1600/Snap2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRXXpsoLMoFLkvS0G2YVHd5_Gj5nxswWj598bPQvhveh97EYi_wSo0xmZSdUnBx4c8qQv8FTQTSZPUQJNanEWTtLvIF8cMJbGbm5dbUPtXZodNMZQaJELdX1VWb0iWy4mdO029/s1600/Snap2.jpg" /></a></div>
2. 然後再Filter中填入「vsftp」,再按Find Package,就可以找到vsftpd,點進去<br />「Available packages (vsftp)」頁面中,就可以安裝軟體了!! 簡單又好用,裝完記得要重開機<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtlJd-FQaQXXVmBi7OVkeLkdF7GkU3CNgcWJvSJ2M4J1-Wlxa2XySx5FAspPc7GKVc5g5BKZxKDtQuRJyQL8CrJAFQ1fY3rfcvjvOf3T5gG40EGG9fCxY_Xw8LFu38HnhQMaio/s1600/Snap4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="79" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtlJd-FQaQXXVmBi7OVkeLkdF7GkU3CNgcWJvSJ2M4J1-Wlxa2XySx5FAspPc7GKVc5g5BKZxKDtQuRJyQL8CrJAFQ1fY3rfcvjvOf3T5gG40EGG9fCxY_Xw8LFu38HnhQMaio/s320/Snap4.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWoxZXkJmcfHRsAeSP8SIk9gG90WiQAK3T7dQSKxFwNua7aABlg7phMWw5TLRdASR706LZeLUFhTPt1prjwcfcEaDRqDC8I1XJTM2ljHMNOnNPaSHAXWiLbWSEGEmgU1jPlKbB/s1600/Snap3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<br />
<br />
<br />malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-19254600600595855732012-06-19T23:27:00.001+08:002012-06-19T23:27:57.176+08:00wr-740 change firmware to openwrt + luci webUI之前介紹過了使用RS232的方式更新firmware後,想到我還沒有介紹過如何從剛買回來時就直接改機為openwrt,這邊來說明一下<br />
其實我一開始也是參考這篇文章:http://www.mobile01.com/topicdetail.php?f=110&t=2226398<br />
因為一開始也不知道怎麼改…非常感謝有人熱心放上網路<br />
<br />
一、一開始就先進到這邊準備升級吧<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVBMIcxVO_g3a2EGLhbmtTyILVANDwT-dxaaayxYwdKnWrphV08S1yP3_3nPaH9EWCpRBvbbR8GouWHP10-mMWd21f4bdhm-v6WOyBRtZgeBBNc9O1iLevStd6q04acpuAITUa/s1600/image001.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVBMIcxVO_g3a2EGLhbmtTyILVANDwT-dxaaayxYwdKnWrphV08S1yP3_3nPaH9EWCpRBvbbR8GouWHP10-mMWd21f4bdhm-v6WOyBRtZgeBBNc9O1iLevStd6q04acpuAITUa/s1600/image001.jpg" /></a></div>
二、下載openwrt的firmware (其實是OS image啦)<br />
參考這邊下載:<a href="http://wiki.openwrt.org/toh/tp-link/tl-wr740n">http://wiki.openwrt.org/toh/tp-link/tl-wr740n</a><br />
或是直接由這個連結下載:<a href="http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr740n-v1-squashfs-factory.bin">http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr740n-v1-squashfs-factory.bin</a><br />
但是請注意一下,這是給V1.x和V2.x升級用的喔<br />
我的是V2.4版,所以使用openwrt-ar71xx-generic-tl-wr740n-v1-squashfs-factory<br />
如果是其它版本的,請到下面的連結去找你的版本,裡面也有V3.x和V4.x的<br />
<a href="http://downloads.openwrt.org/snapshots/trunk/ar71xx/">http://downloads.openwrt.org/snapshots/trunk/ar71xx/</a><br />
<br />
三、下載下來後,就由(一)的畫面選擇你的檔案,並按軟體升級,然後靜靜等待,剛更新完的時候是沒有網頁的,也許有人問要怎麼知道已經完成了<br />
我是看它上面的燈號,韌體升級完後,會自動開機,等到WAN或是LAN的燈號開始閃應該就是完成了<br />
另外: 其它的文章都說要先把原廠的設定值改回出廠設定,但依我觀查RS-232的結果,應該是不需要這個動作的,因為在網頁更新時,可以從RS-232上看到的畫面如下,這表示他只是利用html傳檔的方式,放到它的/tmp下(這是ram),然後再把資料寫到flash中,是不是原廠設定應該沒關係<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9rDhFwN72qG1RM-v0f7OpXhyphenhyphen6efSo9SGAUnFyBJ0OgJ3_IOpLBwe3YcvpgVIrOTfBujYuqrak0shTJzd6874Ft-RsPJEamOWKVnNBZk-cXg6vE0QHxFf4jM-guIkp4iZzrHo1/s1600/image011.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9rDhFwN72qG1RM-v0f7OpXhyphenhyphen6efSo9SGAUnFyBJ0OgJ3_IOpLBwe3YcvpgVIrOTfBujYuqrak0shTJzd6874Ft-RsPJEamOWKVnNBZk-cXg6vE0QHxFf4jM-guIkp4iZzrHo1/s1600/image011.jpg" /></a></div>
<br />
<br />
四、.更新完後,把電腦的IP設為192.168.1.2,再以telnet連線進去,不需要帳密<br />
若看到下面的畫面就代表你成功了!!!!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLx9_Urb8VvAS-pp426KcQo7eI5jDOdAxs-d7cIns5lg7_aBzGajgUV7o_Y8YDgDjWoedqwmV5Kw-qXHLPozuLow3AH7xTHyKyW4fpJLhRl5mXBQFWwHLy8Wosloja4H4ivnvV/s1600/image002.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="293" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLx9_Urb8VvAS-pp426KcQo7eI5jDOdAxs-d7cIns5lg7_aBzGajgUV7o_Y8YDgDjWoedqwmV5Kw-qXHLPozuLow3AH7xTHyKyW4fpJLhRl5mXBQFWwHLy8Wosloja4H4ivnvV/s400/image002.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi21-6CCX-7t3zpwJO2iARkQuGjjAjRKuC3RqS0UZ_HbMTI08gdlZ3RduDqaKJ4FC18tMKl4TpmwCliSyzlLI3M7mB5V1F4HRqqk28tBSR-4oPpnMRqe5_RqHJhC3PizfehyvgJ/s1600/image003.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi21-6CCX-7t3zpwJO2iARkQuGjjAjRKuC3RqS0UZ_HbMTI08gdlZ3RduDqaKJ4FC18tMKl4TpmwCliSyzlLI3M7mB5V1F4HRqqk28tBSR-4oPpnMRqe5_RqHJhC3PizfehyvgJ/s400/image003.jpg" width="400" /></a></div>
<br />
五、再用「passwd」指令設定root的password(這是指向busybox的指令,表示busybox就有這個功能,不清楚busybox沒關係,這不是重點) <br />設完後telnet會關閉,然後sshd會啟動(因sshd一定要有密碼)<br />(其實sshd已經啟動了,只是因為沒有root的密碼,所以你也無法登入-->這是由comport更新firmware時看出來的)<br /><br />六、因為沒有網頁的介面,所以我們來安裝個介面吧,這邊我裝過幾個版本,我還是覺得luci比較好用,所以這邊就以此為例<br />
<br />
七、用sshd連線完成後,先下指令(這邊我是使用putty連線的)<br />
opkg update<br />
先取得目前的opkg的清單<br />
<br />
八、安裝所有的LuCI套件,非https版本<br />opkg install luci<br />或是安裝LuCI套件,且支援HTTPS 的版本<br />opkg install luci-ssl<br /><br />
九、啟動uhttpd,並讓它在以後每次開機都會執行(剛安裝完並不會馬上啟動)<br />
/etc/init.d/uhttpd enable<br />/etc/init.d/uhttpd start<br />接著用 http://192.168.1.1 連到網頁<br /><br />
十、網頁的登入介面如下,使用的是你在ssh登入的帳密<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrpfm-qfs9noC8mQJCMkg6ESQbdKip4-cJBWkGkI7dGLLW-9NaD-D8fZxvQuK-tWWCNlrAAgcLMPUDbvBKWqUP190ZfPY46fs6039ZyH6Ra9gIBNsd-6ML0r_wc2lZv9yEUUFO/s1600/image001.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrpfm-qfs9noC8mQJCMkg6ESQbdKip4-cJBWkGkI7dGLLW-9NaD-D8fZxvQuK-tWWCNlrAAgcLMPUDbvBKWqUP190ZfPY46fs6039ZyH6Ra9gIBNsd-6ML0r_wc2lZv9yEUUFO/s1600/image001.jpg" /></a></div>
<br />
十一、目前使用起來還蠻多功能的,但…沒有原廠的直覺…(我的感覺啦,原廠的比較簡單)<br />不過基本功能,連圖表統計功能都有了,感覺還蠻棒的!!<br />
另外還可以新增wifi button的功能,超方便的!!-->就是為了它,我才刷的!! <br />
<br />
最後補充一下,下面是我安裝 luci時產生的訊息,不管有沒有用,就先貼出來再說了<br />
以下為安裝過程中的訊息:<br />root@OpenWrt:~# opkg install luci<br />Installing luci (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci_trunk+svn8187-1_ar71xx.ipk.<br />Installing uhttpd (30) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/uhttpd_30_ar71xx.ipk.<br />Installing luci-mod-admin-full (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-mod-admin-full_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-mod-admin-core (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-mod-admin-core_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-lib-web (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-lib-web_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-lib-core (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-lib-core_trunk+svn8187-1_ar71xx.ipk.<br />Installing lua (5.1.4-8) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/lua_5.1.4-8_ar71xx.ipk.<br />Installing liblua (5.1.4-8) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/liblua_5.1.4-8_ar71xx.ipk.<br />Installing libuci-lua (2011-11-14.1-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libuci-lua_2011-11-14.1-1_ar71xx.ipk.<br />Installing luci-lib-sys (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-lib-sys_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-lib-nixio (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-lib-nixio_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-sgi-cgi (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-sgi-cgi_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-lib-lmo (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-lib-lmo_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-proto-core (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-proto-core_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-i18n-english (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-i18n-english_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-lib-ipkg (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-lib-ipkg_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-theme-openwrt (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-theme-openwrt_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-theme-base (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-theme-base_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-app-firewall (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-app-firewall_trunk+svn8187-1_ar71xx.ipk.<br />Installing luci-proto-ppp (trunk+svn8187-1) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/luci-proto-ppp_trunk+svn8187-1_ar71xx.ipk.<br />Installing libiwinfo-lua (23) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libiwinfo-lua_23_ar71xx.ipk.<br />Installing libiwinfo (23) to root...<br />Downloading http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/libiwinfo_23_ar71xx.ipk.<br />Configuring luci-lib-sys.<br />Configuring liblua.<br />Configuring libuci-lua.<br />Configuring lua.<br />Configuring luci-lib-core.<br />Configuring luci-lib-nixio.<br />Configuring luci-sgi-cgi.<br />Configuring luci-lib-lmo.<br />Configuring luci-lib-web.<br />Configuring luci-proto-core.<br />Configuring luci-i18n-english.<br />Configuring luci-mod-admin-core.<br />Configuring libiwinfo.<br />Configuring libiwinfo-lua.<br />Configuring luci-theme-base.<br />Configuring luci-theme-openwrt.<br />Configuring luci-app-firewall.<br />Configuring luci-lib-ipkg.<br />Configuring luci-proto-ppp.<br />Configuring luci-mod-admin-full.<br />Configuring uhttpd.<br />Configuring luci.<br />root@OpenWrt:~#<br />malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-12479262106462807472012-06-17T10:00:00.000+08:002012-06-17T10:00:00.877+08:00anroid手機客制化程式移除<br />
手上一隻華為的U8650 中華電信客製機<br />
上面滿滿的是Hami 應用程式,想刪都刪不掉<br />
研究了好久,原來這些東西不是單純的只是安裝在你的系統而已<br />
當我刷完機後,發現「它們」還在…,但是佔有的空間都是0kb ????<br />
而在你點選了之後,就會開始安裝<br />
<br />
如果有努力去找的人,一定會在root後去看/data/app/ 或是/system/app/ 中是不是有這些程式的.apk存在<br />
你會發現根本找不到…<br />
後來我在 /cust/cht/tw/app/ (指的應該是custom) 中找到了他們,直覺就是刪了他們!!<br />
但這是不會成功的,因為這一個資料夾是被 掛載為 read only的<br />
雖然root後,可以把/ 和/sys 都掛載為 rw (read & write) 但並不會動到這個資料夾<br />
因為這個資料夾是一個獨立的partition的型式存在的 (或是一個 cust.img)<br />
所以不會被 remount到 ,你需要自己remout他們為 rw<br />
<br />
以下是我的方式:<br />
<br />
1. 先安裝ssh server,比如DropBear SSH Server(我是用這一個),或是ssh-droid,讓你的手機有ssh server,可以使用putty去登入,然後用命令的方式去remount<br />
<br />
2. remount的方式為:<br />
mount -o remount, rw /cust<br />
這樣就會把 /cust 改成可讀可寫<br />
然後下指令 remount<br />
mount -o remount, rw /cust<br />
刪除所有不要的apk (因為我全部都不想要…)<br />
rm /cust/cht/tw/app/*<br />
你也可以在這邊找找看有沒有其它你不想要的東西,推想所以客製化的東西都在這樣<br />
<br />
3. 再remount回 read only<br />
mount -o remount, ro /cust<br />
<br />
這樣就大功告成了!! 請重新開機,一隻乾乾淨淨的機子就出現了!! <br />
<br />
<br />malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-87686647171072364802012-06-16T13:45:00.002+08:002012-06-17T09:47:35.686+08:00Uart and u-boot to factory firmware for wr-740n<br />
其實…會測到serial port的原因,不外乎就是刷機刷掛了…<br />
我想看看dd-wrt 是不是有如網路所說的這麼好用,所以直接從open-wrt改到dd-wrt…<br />
結果就製造了一塊磚頭出來了…痛…<br />
後來也由Uart配合tftp,把dd-wrt弄好了…結果…我真的覺得比open-wrt還不好用,也許是我不夠強,所以不好用吧,目前就覺得dd-wrt最多就是有中文化而已 <br />
(改了這一次後,就有點想把USB也拉出來說~)<br />
<br />
一、為了救回來,只好把Uart的線拉出來,由這邊下指令才有辨法再燒東西進去<br />
首先來看一下線路圖吧!<br />
由於在OpenWrt的Wr740n型號中只有介紹V1.2版硬體的配置<br />
所以需要到Wr741nd中找配線方式,如下圖就是要接出來的地方<br />
(<a href="http://wiki.openwrt.org/toh/tp-link/tl-wr741nd#serial">http://wiki.openwrt.org/toh/tp-link/tl-wr741nd#serial</a>)<br />
pin 86 for UART RX<br />
pin 87 for UART TX<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN651VzlamOGfSqav8YgJnHD9L1WibjYyXukDjij8ZpLCrzTBo81xV4nLwKWhqyeidr1gOoqVRR2vlAFPtun6vGnCKWel50E6ezae8tABvdI8w6PBLBYWDMWcdBD7rlnzzJc1J/s1600/image001.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="332" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiN651VzlamOGfSqav8YgJnHD9L1WibjYyXukDjij8ZpLCrzTBo81xV4nLwKWhqyeidr1gOoqVRR2vlAFPtun6vGnCKWel50E6ezae8tABvdI8w6PBLBYWDMWcdBD7rlnzzJc1J/s400/image001.jpg" width="400" /></a></div>
<br />
二、當然,從上面這麼密的地方接線,要注意的事比較多,若不小心短路到了就死了!<br />
因此,我們從背面來,右到左為,TX, RX, GND,這二個腳位都是由上面打通孔到背面的,所以由這邊接最方便<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaooyiNBaNSwEW0nzIFlHB26aP1-rfx87gw447K_CXDcy36v-nt-JpmRoeqCzgCnnLfFtu-H_bZdCusJYLpX4-0dnQ4V9mXDp99bbIWj_vC26EAoyMNzgD1MQhjj9ILy-Y3OPu/s1600/image002.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="273" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaooyiNBaNSwEW0nzIFlHB26aP1-rfx87gw447K_CXDcy36v-nt-JpmRoeqCzgCnnLfFtu-H_bZdCusJYLpX4-0dnQ4V9mXDp99bbIWj_vC26EAoyMNzgD1MQhjj9ILy-Y3OPu/s400/image002.jpg" width="400" /></a></div>
<br />
<br />
三、接好Uart後,就先把com port先打開,上電,可以看到LED亮一下就馬上關閉再閃爍<br />
這是因為它的bootloader預設一秒沒有辨法進入開機點,若是沒收到正確的指令就會再重開機<br />
請在這時,不斷的一直連打「tpl」,這是通關密語~<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipYZHrHC4aR-r_d0ZOLJ0hB5vYTxn6EYoiPyw_WXQ3L0cwCPdn_JB2hqywVqvB34o-58v517DMBKqz_FVo-8OiNngFcCq-KCbhoV8wd9LMBlHa8aiYyPAwkccSQJdTFpBVj_T8/s1600/image003.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipYZHrHC4aR-r_d0ZOLJ0hB5vYTxn6EYoiPyw_WXQ3L0cwCPdn_JB2hqywVqvB34o-58v517DMBKqz_FVo-8OiNngFcCq-KCbhoV8wd9LMBlHa8aiYyPAwkccSQJdTFpBVj_T8/s400/image003.jpg" width="400" /></a></div>
<br />
四、接著就是要由uboot,經由網路,從我們自己架的tftp server把firmware的image抓進來,放到ram中,再由ram燒到flash中<br />
所以我們要先收集到我們所需要的資料才行,分別是:「flash燒錄的起始位址」、「ram的起始位址」、「IP」<br />
1. 我們要先知道firmware (即kernel + filesystem)是在哪一個區域<br />
由好的wr740中得到的資訊為:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjXZuLgXLRrMAwFcVn4wetZcRJA1I9czPn7miBhyzGm5FCOszUElQn_LmkvU8vurJKluRLMmLcmIjECREWlQQT058lc9DrB7Ol3sgL9m5ABmve79h1CdNHsMfqlTMnn1zhTuBb/s1600/image004.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjXZuLgXLRrMAwFcVn4wetZcRJA1I9czPn7miBhyzGm5FCOszUElQn_LmkvU8vurJKluRLMmLcmIjECREWlQQT058lc9DrB7Ol3sgL9m5ABmve79h1CdNHsMfqlTMnn1zhTuBb/s1600/image004.jpg" /></a></div>
<br />
這們可以了解到firmware的大小<br />
<br />
2. 接著就是要設定bootloader的參數<br />
由 ipaddr=192.168.1.123<br />
serverip=192.168.1.100<br />
得知目前wr-740的IP為192.168.1.123 ,而目標的server為192.168.1.100 -->可以改為我們的IP<br />
>setenv ipaddr 192.168.1.1<br />
>setenv serverip 192.168.1.10<br />
(如果有注意在看,會發現圖和我寫的指令不一樣…這是因為我一開始用Win7 64bit,後來沒想法 tftp沒辨法連的起來,才又換了XP繼續進行 xd)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghQhFPFLQwqXxvQDsf0duBbhonCWBZbi9KKYGejBpdGfxQkidY7PxaTGR9dYbO399QD6GhYbsQPzzxX9891a2swXMIf1wZG5qLgvRvFBPM-Fi5lECjHUZbKSAXs__Ps5c-qBs9/s1600/image005.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="140" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghQhFPFLQwqXxvQDsf0duBbhonCWBZbi9KKYGejBpdGfxQkidY7PxaTGR9dYbO399QD6GhYbsQPzzxX9891a2swXMIf1wZG5qLgvRvFBPM-Fi5lECjHUZbKSAXs__Ps5c-qBs9/s400/image005.jpg" width="400" /></a></div>
<br />
3. 又於參數中的 bootcmd=bootm 0x9f020000<br />
可以了解到開機時,bootloader 由此處載入我們的firmware的<br />
所以等一下要燒錄的起啟位址就是0x9f020000 !!<br />
PS. 依經驗,這0x9Fxx-xxxx,應該是flash定址的起始位置,所以真正的寫入位址應該是0x20000 -->也就是從128KB處寫起<br />
也代表上面的mtd列表寫的,size 20000 "u-boot"就是bootloader所佔的空間大小<br />
<br />
4. 然後因為我們的flash大小(即ROM)為4MB --> 0x400000<br />
所以(0x0040 0000) - (0x0002 0000) = 0x003E 0000 有這樣大小的flash是可以erase的<br />
<br />
5. 由網路查到,要由tftp把firmware的image載到ram中的位址是 0x8000 0000<br />
> tftpboot 0x80000000 1.bin<br />
這可能代表AR7240這個CPU的RAM是由0x8000 0000這個位址開始定址的<br />
(在網路上也找不到使用手冊,就只找的到datasheet,所以可能只有開發商才拿的到這資料吧)<br />
<br />
五、開始燒錄!! 說了這麼多,重點還是要了解怎麼燒才行<br />
1. 先到tftp32的網頁下載tftp server的軟體<br />
<a href="http://tftpd32.jounin.net/tftpd32_download.html">http://tftpd32.jounin.net/tftpd32_download.html</a><br />
這軟體解壓縮即可使用,很方便<br />
指定我們已下載下來的原廠firmware,我解壓後改名為「wr740n.bin」<br />
這邊找你機器的版本 (but.... 為何只有英文…沒有中文!!)<br />
<a href="http://www.tp-link.com/en/support/download/?model=TL-WR740N">http://www.tp-link.com/en/support/download/?model=TL-WR740N</a><br />
下載點 <br />
<a href="http://www.tp-link.com/resources/software/TL-WR740N_v1v2_100910.zip">http://www.tp-link.com/resources/software/TL-WR740N_v1v2_100910.zip</a><br />
下面是tftp的畫面,點「Browse」指定你的firmware的資料次即可<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-6mX2m3D_p9hOJcyN7lmaaIEqXsGAM_1zeex6RubC-sScrXRGl7yY2WewSPxlQHRfB3NsbCXBESN1yLQ7wqWa4GUONFSCGnR8MKI7Bp3f6qHo007rRjd-6hWSeamoP3nwIDLb/s1600/image006.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-6mX2m3D_p9hOJcyN7lmaaIEqXsGAM_1zeex6RubC-sScrXRGl7yY2WewSPxlQHRfB3NsbCXBESN1yLQ7wqWa4GUONFSCGnR8MKI7Bp3f6qHo007rRjd-6hWSeamoP3nwIDLb/s1600/image006.jpg" /></a></div>
<br />
2. 首先把自己的IP設定為192.168.1.10<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpfAMtiYkeHnL9ik2MFGrZsIVtEjKXci4wDfHUgbefh9Q6NJxio6zw59Va0sl38iNphyt-rw1To2kAHZyZAcRxl0Xs0e1tyGQ4Xnrn0bet_3rvwLTEC-IYSg7oacjO-OiKH2mv/s1600/image008.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpfAMtiYkeHnL9ik2MFGrZsIVtEjKXci4wDfHUgbefh9Q6NJxio6zw59Va0sl38iNphyt-rw1To2kAHZyZAcRxl0Xs0e1tyGQ4Xnrn0bet_3rvwLTEC-IYSg7oacjO-OiKH2mv/s1600/image008.jpg" /></a></div>
3. 這邊寫到一半,發現在Win7 x64的環境好像沒辨法工作,因此改到XP的環境下工作<br />
(1)這時就要先把wr-740n 的Wan (就是原來對外的網路孔)和電腦的ethernet用網路線接起來了 <br />
(2) 下 tftpboot 0x80000000 tplink.bin 指令 把image放到ram中<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnSlrsZVlHFNHgcSIr-wbVqq2qVJvR0yzQbQOPhKPdGKKliv1F9p8mpqXMmhtZBhgFBYrqww-Zb2uhh1Ub2XNXgV1HPuvFUqfr0WmmpqUzYB6T-Hre4phltJLBJ77e1laIQmUm/s1600/image009.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnSlrsZVlHFNHgcSIr-wbVqq2qVJvR0yzQbQOPhKPdGKKliv1F9p8mpqXMmhtZBhgFBYrqww-Zb2uhh1Ub2XNXgV1HPuvFUqfr0WmmpqUzYB6T-Hre4phltJLBJ77e1laIQmUm/s1600/image009.jpg" /></a></div>
<br />
4. 這邊的 (3c0000 hex) 就是我們要寫入flash的大小<br />
erase 0x9f020000 +0x3c0000<br />
cp.b 0x80000000 0x9f020000 0x3c0000<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxiMESYfLlKfqp1mElD-qW6FDdywH8zxFAyiEC37EPIoCDxqYJs8Y_AZOdWoM69nFI3LwheR36JFlgLCv4F4K3nL3J6od421MdMy33bzFiPDI83pV5iZF7_tnnUfC00uB0TL-7/s1600/image010.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxiMESYfLlKfqp1mElD-qW6FDdywH8zxFAyiEC37EPIoCDxqYJs8Y_AZOdWoM69nFI3LwheR36JFlgLCv4F4K3nL3J6od421MdMy33bzFiPDI83pV5iZF7_tnnUfC00uB0TL-7/s1600/image010.jpg" /></a></div>
<br />
最後再下一個<br />
bootm 0x9f020000<br />
新的firmware就開始跑了!!<br />
大功告成!!呼~<br />
<br />
5、補述一下,後來確認之前的猜想是對的<br />
當我由原廠的firmware改為openwrt時-->用網頁更新<br />
在Uart所吐出來的資訊為<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9rDhFwN72qG1RM-v0f7OpXhyphenhyphen6efSo9SGAUnFyBJ0OgJ3_IOpLBwe3YcvpgVIrOTfBujYuqrak0shTJzd6874Ft-RsPJEamOWKVnNBZk-cXg6vE0QHxFf4jM-guIkp4iZzrHo1/s1600/image011.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9rDhFwN72qG1RM-v0f7OpXhyphenhyphen6efSo9SGAUnFyBJ0OgJ3_IOpLBwe3YcvpgVIrOTfBujYuqrak0shTJzd6874Ft-RsPJEamOWKVnNBZk-cXg6vE0QHxFf4jM-guIkp4iZzrHo1/s1600/image011.jpg" /></a></div>
確實0x20000 ~ 0x3E0000 這部份都是放firmware的malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-35196698032410688002012-06-09T11:09:00.000+08:002012-06-16T13:09:22.032+08:00Wifi button with OpenWrt in WR740N試了好幾天終於成功的在WR740N上實作了使用QSS按鈕來快速開啟Wifi<br />
<br />
為何要這樣做作,因為筆者在公司已經整天都在玩無線的東西了,回到家實在不喜歡又是一整個都是無線的環境,但是現在又都有android手機,難免有時會想要安裝點新東西來玩玩,這時就可以不用再去打開電腦,連到IP分享器去打開Wifi的功能,只要把IP分享器的QSS鈕按一下,這樣就把Wifi打開了,用完了,再按一下QSS鈕,就可以關閉它!!實在很方便<br />
(不過話說,現在已經是個:你不射別人,別人也會射你的世界了…。指的是用無線射…別想偏了。) <br />
<br />
好!!~~廢話不話,就來動手把已經改為OpenWrt的WR740,打造成有Wifi實體開關的功能<br />
首先,先用Putty連到OpenWrt中,進到 /etc/hotplug.d/button/ 這個資料夾中<br />
新增 「01onoff」這個檔案,並設為可執行<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsvMfl2XJsFoYFFiZo8fnYpXMobFmWDEPC_-TitHeSLoQi33Ap9mhup4BdIdRqt6fFeFiLPXmfjbjaTRb8PoCO4gZjoK8CzN0vjlLQwFk_pdV6S5l7ogEAg_aykrEXZAsH-hZz/s1600/Snap2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsvMfl2XJsFoYFFiZo8fnYpXMobFmWDEPC_-TitHeSLoQi33Ap9mhup4BdIdRqt6fFeFiLPXmfjbjaTRb8PoCO4gZjoK8CzN0vjlLQwFk_pdV6S5l7ogEAg_aykrEXZAsH-hZz/s1600/Snap2.jpg" /></a></div>
<br />
(1) cd /etc/hotplug.d/button<br />
(2) vi 01onoff<br />
內容為:<br />
#!/bin/sh<br />
<br />
[ "$BUTTON" = "wps" ] && [ "$ACTION" = "pressed" ] && {<br />
SW=$(uci get wireless.@wifi-iface[0].disabled)<br />
[ $SW == '0' ] && uci set wireless.@wifi-iface[0].disabled=1<br />
[ $SW == '0' ] || uci set wireless.@wifi-iface[0].disabled=0<br />
wifi<br />
}<br />
<br />
(3) chmod +x 01onoff<br />
<br />
即可開始使用(記得是不用重開機…)<br />
<br />
此功能是參考OpenWrt的網頁得來的,參考網頁如下:<br />
<a href="http://wiki.openwrt.org/toh/tp-link/tl-wr741nd#wifi.onoff.toggle.by.qss.button" target="_blank">http://wiki.openwrt.org/toh/tp-link/tl-wr741nd#wifi.onoff.toggle.by.qss.button</a><br />
只是這個網頁的內容我試過是行不通的,可能是因為WR741和WR740還是有些不同處<br />
<br />
我有變動的地方主要是把本來「wireless.@wifi-device[0].disabled」的地方改為「wireless.@wifi-iface[0].disabled」<br />
會這樣改的原因是,我查wireless裝置中,wifi開關的參數名稱有所不同,如下:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkBii_rPO5j-d37qNK2KOrzdp2CDObksip5zJzkdCrTLDDBxEsypNIXSt7KknFND6N8-Da5ErKJIs0b72AjsJzmvsQsBE4j17YkrV35dcfiK2hyphenhyphenlilttJ-5w9_me0WK9z05GDU/s1600/Snap3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkBii_rPO5j-d37qNK2KOrzdp2CDObksip5zJzkdCrTLDDBxEsypNIXSt7KknFND6N8-Da5ErKJIs0b72AjsJzmvsQsBE4j17YkrV35dcfiK2hyphenhyphenlilttJ-5w9_me0WK9z05GDU/s1600/Snap3.jpg" /></a></div>
希望以上內容對想要此功能,但又找不到方法的人有點幫助,因為如果沒有花點時間了解uci的系統,真的找不到這地方要修丫!!<br />
<br />malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-36775696817223484882012-06-03T18:02:00.001+08:002012-06-03T18:02:17.113+08:00所見即所得的網頁編輯器 KompoZer這陣子需要製作網頁,寫PHP<br />
因此開始找個免費的網頁編輯軟體<br />
以前有Dream Weaver,確實好用<br />
那時配合Java + javascript,寫的不亦樂乎<br />
<br />
但現在離開了學校,就想要找個免費的軟體來使用<br />
沒想到要找個合用的真的不容易<br />
1. eclipse 只能寫code,要規劃HTML畫面時,就不是很方便<br />
2. NVU.... 這東西很久前有抓來玩玩,但真的很難用…<br />
3. KompoZer,後來就找到了這東西,是NVU的延續版<br />
<br />
網路上有這個軟體的教學動畫,學起來也蠻快的<br />
http://c2.dhps.tp.edu.tw/~b6/l1/l1.htm<br />
但是實際上在配合PHP寫程式時,還真的不是很方便<br />
尤其是它會「自動的」幫你 程式碼重新排版<br />
然後你手動修改的Html碼,不合他意的,就「幫你」改回來他認為的<br />
常會用到一整個火的<br />
<br />
後來就改變使用的方式,單純使用KompoZer來產生網頁的HTML碼<br />
然後把需要的碼複製出來,在codeBlocks中寫程式<br />
這樣目前就處於尚可以接受的情形在撰寫網頁程式…<br />
<br />
希望未來可以再找到一套比較好用的軟體!!<br />
自由軟體加油丫!<br />malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-79849990586311395272012-05-26T13:16:00.002+08:002012-05-26T13:16:45.666+08:00/sys/class 筆記-CPU速度資訊這個分類的東西真的很多丫…但看一看目前對我有用的資訊不多<br />
<br />
首先來看看/sys/devices/system 這邊的東西<br />
1.CPU 的資訊,以我的來說,只有一個cpu0,代表的是單核的,接著要緊的是cpu0/cpufreq的資訊,這邊有目前的速度,可以調速的最大,最小速度<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhKi-lUC5kEInRChJi8lf5nBhktPiRNs5zjJtU63gsFthd5GsZHyz9IwPoCYn7M_ySgtoq_yAm_f_CipouoDlmBzWrQDPyPmWt8jRTnPyureGEV6Q98znhZvHFMALC6RPf0dJ0/s1600/Snap12.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhKi-lUC5kEInRChJi8lf5nBhktPiRNs5zjJtU63gsFthd5GsZHyz9IwPoCYn7M_ySgtoq_yAm_f_CipouoDlmBzWrQDPyPmWt8jRTnPyureGEV6Q98znhZvHFMALC6RPf0dJ0/s1600/Snap12.jpg" /></a></div>
.cpuinfo_cur_freq, max_freq, min_freq,代表的是目前、最大、最小的頻率<br />
.scaling_cur_freq, max, min....:故名思意,為目前、最大、最小的可調整的範圍<br />
.scaling_governor:指的是目前的調整策略,我的是performance,所以目前一直都在最大值<br />
這邊的速度單位都是kHz,所以目前cpu0速度為416MHz <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjebGcfhGBhmMnXighHtYktn3te9xHM5q2Hfus0M_HYlj6CDfekwQ5HjkT67zrdM8pGplPswDaVyoeUTkIoTN1QIuX4kDgQO5zkAaPTtABI_404J_SjcAK3CBmOXS24CZF2qMnJ/s1600/Snap13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjebGcfhGBhmMnXighHtYktn3te9xHM5q2Hfus0M_HYlj6CDfekwQ5HjkT67zrdM8pGplPswDaVyoeUTkIoTN1QIuX4kDgQO5zkAaPTtABI_404J_SjcAK3CBmOXS24CZF2qMnJ/s1600/Snap13.jpg" /></a></div>
<br />
其它的資訊為clocksource...等等…這些就不感興趣了,若有新發現在來補吧<br />
<br />
<br />malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-22703531919579234512012-05-26T12:39:00.001+08:002012-05-26T12:39:52.364+08:00/sys 中的東西 --> /sys/class最近需要在Linux系統抓一些有用的系統資訊來使用,所以試了很多的方法後,忽然發現了一個地方有不少資訊可以抓<br />
這個地方就是 「/sys」!!!! 以前都不怎麼注意它的說…<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhOaf7tr9BWZZZmKySESPCVEJmneJhMKzUUn9K8SHTT5wQcg3F6c0V688qa8w7A7DMpgE4ryHIRdvxFcJaRDH3sHYitUZUA64wB96T2SNF58jsaJ_rTLSAkls9P5FEce-fJE95/s1600/Snap3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhOaf7tr9BWZZZmKySESPCVEJmneJhMKzUUn9K8SHTT5wQcg3F6c0V688qa8w7A7DMpgE4ryHIRdvxFcJaRDH3sHYitUZUA64wB96T2SNF58jsaJ_rTLSAkls9P5FEce-fJE95/s1600/Snap3.jpg" /></a></div>
<br />
不過這裡面的東西真的太多了,要看你怎麼分類去看,有的地方會有交集,有的不會<br />
<br />
<br />
首先來看一下 /sys/class<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglHSqKLJjBZScu5HuXfzGe2QL3dauayau0wznNbsjFyRLQRN0LXZ1AUwt0uOm_IgSnH2CoiiYXanKAQUU6AimdxunTiGhok4BtUqWA7B8cWD3N_kuxLvNCw1qSSogy8iE373Y9/s1600/Snap2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglHSqKLJjBZScu5HuXfzGe2QL3dauayau0wznNbsjFyRLQRN0LXZ1AUwt0uOm_IgSnH2CoiiYXanKAQUU6AimdxunTiGhok4BtUqWA7B8cWD3N_kuxLvNCw1qSSogy8iE373Y9/s1600/Snap2.jpg" /></a></div>
<br />東西真的很多!<br />
<br />
1. RTC:從這邊可以得到RTC的資訊<br />
.name:可以得到RTC的chip名稱,以我的來說為「rtc-ds1302」<br />
.date, time:就是時間/日期囉,也就是你用hwclock得到的資訊<br />
.since-epoch:這個結果看起來好像是系統時間換成秒數的結果,應該是1970年起算吧<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2hvZJ2cPxEkmurP5W2AE537hZ2QGioSsIOwKI3nNe0lp-PYr_jhoFibffHr-BCtD0GbNh-7kVRPFZveFgLj3QLvyS7kvVcAEeob8PkJTUDc_YtWnDKxBZXnYyHxLdkyVfoZw/s1600/Snap4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih2hvZJ2cPxEkmurP5W2AE537hZ2QGioSsIOwKI3nNe0lp-PYr_jhoFibffHr-BCtD0GbNh-7kVRPFZveFgLj3QLvyS7kvVcAEeob8PkJTUDc_YtWnDKxBZXnYyHxLdkyVfoZw/s1600/Snap4.jpg" /> </a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
2. mtd:這邊指的是flash的配置區塊<br />
以我這邊來說,可以看到這樣的情形,其中mtdx,內含每一個區塊的資訊<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSyVFyIt0ijlvfPw8hqUn0_JwLzNVBa6h62vRs8D1DDvw5AGDtu0TN2qXvYNIBhGisa_Ukh2vlrusgqw-vdliE2rxJFqjLlBTxwmaLm4EHW8t6gr0Ngpu5x6-Lrz_awmCC0gQl/s1600/Snap5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSyVFyIt0ijlvfPw8hqUn0_JwLzNVBa6h62vRs8D1DDvw5AGDtu0TN2qXvYNIBhGisa_Ukh2vlrusgqw-vdliE2rxJFqjLlBTxwmaLm4EHW8t6gr0Ngpu5x6-Lrz_awmCC0gQl/s1600/Snap5.jpg" /></a></div>
比如說由name,可以看到這區塊是bootloader,而size可以看到它的大小,單位是byte<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5mtQgtc1EswZ7RuKbF0CdicUAilrL38L9TrXu7caxGr6mOoM7ktizUdDPE9rAV1GpdFgGFyg9boCdbASc-0nQAEW-lilR6viDpSFiprgBIWiDZhZ2nstsxNAU0dxMwxJeoewe/s1600/Snap6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5mtQgtc1EswZ7RuKbF0CdicUAilrL38L9TrXu7caxGr6mOoM7ktizUdDPE9rAV1GpdFgGFyg9boCdbASc-0nQAEW-lilR6viDpSFiprgBIWiDZhZ2nstsxNAU0dxMwxJeoewe/s1600/Snap6.jpg" /></a></div>
3.net:這邊有網路部份的資訊,如eth0, ppp0等資訊<br />
以eth0來說,addr_len, address指的是Mac而不是ip,其它的資訊就不是很清楚了,如果有人知道資訊,再請提點一下~ <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjF32lcpek2KifJp1WGrS51p8WVKi6Th3eyHRdmmc2m_bzSrKlR4YPXiBgngb-nrp7o3QBdnKJC_zxbRE3yS3q1X_M3iQhaa7vAJNyWQ_9rz-_suI0U9vtXT37FIBrCNafXO69/s1600/Snap7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjF32lcpek2KifJp1WGrS51p8WVKi6Th3eyHRdmmc2m_bzSrKlR4YPXiBgngb-nrp7o3QBdnKJC_zxbRE3yS3q1X_M3iQhaa7vAJNyWQ_9rz-_suI0U9vtXT37FIBrCNafXO69/s1600/Snap7.jpg" /></a></div>
另外,在「statistics」為這個interface的統計資料<br />
比如說需要目前rx, tx的流量,就可以由這邊得知,這個對撥接上網的人來說是很有用的資訊,可以拿來計算目前的封包量,進一步做流量的管制 <br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ndzKYNXqfq3J3Vqe88q7WyS6MXoZUduz-Mhrk_NZ_8i3NJ7C93VSTK8YtKjH7zvo0QZuK3oBkBrsTYwzwOosZEJrn1I0R0iNIntb_LX7_YnNtjfTunx1TBIF9-Dsxa88Nq70/s1600/Snap9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6ndzKYNXqfq3J3Vqe88q7WyS6MXoZUduz-Mhrk_NZ_8i3NJ7C93VSTK8YtKjH7zvo0QZuK3oBkBrsTYwzwOosZEJrn1I0R0iNIntb_LX7_YnNtjfTunx1TBIF9-Dsxa88Nq70/s1600/Snap9.jpg" /></a></div>
再進一步,在device中,可以得到目前所使用的chip名稱<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLzmbmwOMW5GlfC9cX5gJod9Xkf5ik4VL8tYyczWepfWDCVJrCb7KvnPaNubXtvzIPOMOGpA5p9po5wp7sKoTvQrdTS0VPCZgevxZOSA1y9I0M3OLPHRnNYfcOG6NS_fy0B11k/s1600/Snap10.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLzmbmwOMW5GlfC9cX5gJod9Xkf5ik4VL8tYyczWepfWDCVJrCb7KvnPaNubXtvzIPOMOGpA5p9po5wp7sKoTvQrdTS0VPCZgevxZOSA1y9I0M3OLPHRnNYfcOG6NS_fy0B11k/s1600/Snap10.jpg" /></a></div>
<br />
4.usb_device:這邊有各個usb裝置的資訊,每一個資料夾代表一個usb裝置<br />
<br />
OK~這一篇就先寫class中的東西就好,下一篇再來寫其它的部份<br />
<br />
<br />
<br />
<br />
<br />
<br />malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-52684625790989540332010-02-01T18:51:00.002+08:002010-02-01T19:10:30.461+08:00Word 快捷鍵設計1.在word可以按「Ctrl」+「Alt」+「+」可以直接指定按鈕(icon)的快捷鍵<div> 但是這個方法對於自己寫的巨集會有問題(至少我自已遇到是這個樣子)</div><div>2.在2007中,按「office按鈕」(就是左上角那個圓圓的大按鈕),功能表的下方點選「Word選項」</div><div> 點「自訂」頁面,再點最下方的「快速鍵:自訂」的按鈕,即可設計自已想要的快捷鍵</div><div> 要注意的是:要區分「將自訂儲存於」的分別,如果用normal表示為自己電腦中的所以樣版</div><div> ,所以不管開哪個檔案都可以用這個快捷鍵;如果選的是目前的檔案,則只有現在編輯的檔案可以用</div>malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com1tag:blogger.com,1999:blog-9161127.post-47754634219432451802010-01-27T21:32:00.003+08:002010-01-27T22:21:33.684+08:00eclipse content assist 自動提示在eclipse中可用的提示方式:<br /><br />1.打程式碼的時候,只要打上「.」就會帶出提示<br />2.打幾個字後,按「Alt + /」也可以帶出提示,如:打「dou」後,按「Alt + /」這樣就會提示出「double」<br />3.在Window -> preferences -> Java -> Editor -> Content assist -> Auto-Activation下,可以設定自動提示的選項<br /><br />小技巧:<br />Auto activation triggers for Java:這一個欄位的意思是,你打了什麼字之後會有提示,預設是「.」<br />所以我們打「.」的時候就可以自動帶出東西來,這時我們只要把a~z都打進去,這樣你不管打什麼都會有提示!!!!<span style=";font-family:宋体;font-size:10;color:black;" ><br /></span>malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-92215556005319225432009-08-10T23:17:00.003+08:002009-08-10T23:31:46.430+08:00QtOctave 使用Octave-Forge package的設定方式這一陣子比較常使用QtOctave<br />但發現一個問題<br />一些matlab中常用的到最佳化function都沒辨法使用<br />查了一下網路,原來在Octave中並沒有像fzero之類的function<br />需要引入<a href="http://octave.sourceforge.net/">Octave-Forge</a>的package才能使用fzero的function<br />不過查了一下QtOctave的資料夾.\octave\share\octave\packages\optim-1.0.0<br />中就已經有包含了Octave-Forge的package了丫<br /><br />進一步查詢,原來是在QtOctave中所附的Octave3是使用一個叫octave_packages的檔案<br />來管理外加的package的<br />由它裡面的內容可以得知,其使用「絕對位置」的方式記載package的位置:<br />-------------------octave_packages的部份內容------------------<br />C:\Archivos de programa\Octave\libexec\octave\packages\arpack-1.0.3<br />-------------------<br /><br />但也不能自己更新吧…(顯示出自己對Octave的不了解…)<br />因此上網找到<a href="http://www.geocities.jp/tmoctwin/qtoctport.html">這個方式</a>來更新<br /><br />只要使用下面的指令即可:<br />(看來要先對Octave做一點了解才會更強丫…)<br />(但國內為何沒有人寫呢…真怪)<br /><br /><br />--------------更新的指令-----------<br /><span><span style="font-family:Times New Roman;"><code>pkg prefix D:\tool\qtoctave-0.7.2\octave\share\octave\packages\<br /></code></span></span><span><span style="font-family:Times New Roman;"><code>pkg rebuild arpack<br /> pkg rebuild audio<br /> pkg rebuild combinatorics<br /> pkg rebuild communications<br /> pkg rebuild control<br /> pkg rebuild econometrics<br /> pkg rebuild fixed<br /> pkg rebuild general<br /> pkg rebuild gsl<br /> pkg rebuild ident<br /> pkg rebuild image<br /> pkg rebuild informationtheory<br /> pkg rebuild io<br /> pkg rebuild irsa<br /> pkg rebuild java<br /> pkg rebuild jhandles<br /> pkg rebuild linear-algebra<br /> pkg rebuild miscellaneous<br /> pkg rebuild nnet<br /> pkg rebuild octcdf<br /> pkg rebuild odebvp<br /> pkg rebuild odepkg<br /> pkg rebuild optim<br /> pkg rebuild outliers<br /> pkg rebuild physicalconstants<br /> pkg rebuild plot<br /> pkg rebuild signal<br /> pkg rebuild sockets<br /> pkg rebuild specfun<br /> pkg rebuild special-matrix<br /> pkg rebuild splines<br /> pkg rebuild statistics<br /> pkg rebuild strings<br /> pkg rebuild struct<br /> pkg rebuild symbolic<br /> pkg rebuild time<br /> pkg rebuild windows<br /> #<br /> pkg load all<br />----------------更新結束------------<br /></code></span></span><span><span style="font-family:Times New Roman;"><code><br /></code></span></span>malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-30869960423597056192009-06-11T22:24:00.004+08:002009-06-11T22:48:49.799+08:00acm傳送程式教學為了怕自已忘了,還是寫一下好了<br /><br />這兒還有<a href="http://axp1.csie.ncu.edu.tw/%7Erick/acmguide/">別人的教學</a><br /><br /><span style="font-weight: bold;font-size:130%;" >方法一:</span><br />用e-mail (<span style="font-weight: bold;">SUBMITTING VIA E-MAIL)<br /></span>這是個算方便的方式acm的說明如下<br /><br />/* @JUDGE_ID: 1000AA 100 C "Dynamic Programming" */ <br /><br />The first field after the @JUDGE_ID: is your User ID (1000AA in the example). It is followed by the program number (100 in the example), and, optionally, by the languaje used (it may be C, C++, Java or Pascal). Don't worry about upper or lower cases. If you don't specify the languaje, the judge will try to autodetect it.<br /><br />方法二:<br />用線上網頁傳送<br /><span style="font-weight: bold;">Submitting via Submit-o-matic</span><br /><br />If submitting via email is not an option, try the <a href="http://acm.uva.es/problemset/submit.php" class="postlink">Submit-o-matic</a> system. Just fill in your user ID, the problem ID and the language the problem is written, and then copy/paste your source-code or upload it from your machine.<br /><br />Using Submit-o-matic, you don't have to include any @BEGIN_OF_SOURCE_CODE, @END_OF_SOURCE_CODE or @JUDGE_ID as everything is handled by the system.<br /><br />在這一個方法,只要把資料填好就行了,不用註解題號、ID等資訊<br />我主要都是用這一個,感覺比較方便malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-46809145336213640902009-02-28T22:29:00.000+08:002009-02-28T22:30:17.706+08:00autoit_取得電池資訊<div xmlns='http://www.w3.org/1999/xhtml'>有些人在問如何用autoit取得電池資訊方法<br/>如果需要,還可以在<a href='http://www.it-visions.de/Scripting/WMIReferenz.asp?C_Klasse=Win32_Battery'>這裡</a>上找到其它WMI中關於Win32_Battery<br/>網頁中有提供vbscript的範例,有需要的人可以自行看看囉<br/><br/>實作方式,我直接採用CompuInfo這一個UDF來解決<br/>(這一個UDF它都是用WMI的方法去取得自己所需要的資訊的)<br/>(請參閱<a href='http://yguma.blogspot.com/2009/02/autoit_28.html'>autoit - 取得電腦軟硬體資訊</a>一文)<br/>呼叫CompuInfo函式庫中的_ComputerGetBattery($Battery)<br/>即可以取得所需的資訊<br/><br/>程式<a href='http://maloyang.googlepages.com/Battery_test.au3'>範例</a>如下:<br/><code><br/><br/>#include <_CompInfo.au3><br/><br/>Dim $Battery<br/><br/>_ComputerGetBattery($Battery)<br/>If @error Then<br/> $error = @error<br/> $extended = @extended<br/> Switch $extended<br/> Case 1<br/> _ErrorMsg($ERR_NO_INFO)<br/> Case 2<br/> _ErrorMsg($ERR_NOT_OBJ)<br/> EndSwitch<br/>EndIf<br/><br/>For $i = 1 To $Battery[0][0] Step 1<br/> MsgBox(0, "Test _ComputerGetBattery", "Name: " & $Battery[$i][0] & @CRLF & _<br/> "Availability: " & $Battery[$i][1] & @CRLF & _<br/> "BatteryRechargeTime: " & $Battery[$i][2] & @CRLF & _<br/> "BatteryStatus: " & $Battery[$i][3] & @CRLF & _<br/> "Description: " & $Battery[$i][4] & @CRLF & _<br/> "Chemistry: " & $Battery[$i][5] & @CRLF & _<br/> "ConfigManagerErrorCode: " & $Battery[$i][6] & @CRLF & _<br/> "ConfigManagerUserConfig: " & $Battery[$i][7] & @CRLF & _<br/> "CreationClassName: " & $Battery[$i][8] & @CRLF & _<br/> "DesignCapacity: " & $Battery[$i][9] & @CRLF & _<br/> "DesignVoltage: " & $Battery[$i][10] & @CRLF & _<br/> "DeviceID: " & $Battery[$i][11] & @CRLF & _<br/> "ErrorCleared: " & $Battery[$i][12] & @CRLF & _<br/> "ErrorDescription: " & $Battery[$i][13] & @CRLF & _<br/> "EstimatedChargeRemaining: " & $Battery[$i][14] & @CRLF & _<br/> "EstimatedRunTime: " & $Battery[$i][15] & @CRLF & _<br/> "ExpectedBatteryLife: " & $Battery[$i][16] & @CRLF & _<br/> "ExpectedLife: " & $Battery[$i][17] & @CRLF & _<br/> "FullChargeCapacity: " & $Battery[$i][18] & @CRLF & _<br/> "LastErrorCode: " & $Battery[$i][19] & @CRLF & _<br/> "MaxRechargeTime: " & $Battery[$i][20] & @CRLF & _<br/> "PNPDeviceID: " & $Battery[$i][21] & @CRLF & _<br/> "PowerManagementCapabilities: " & $Battery[$i][22] & @CRLF & _<br/> "PowerManagementSupported: " & $Battery[$i][23] & @CRLF & _<br/> "SmartBatteryVersion: " & $Battery[$i][24] & @CRLF & _<br/> "Status: " & $Battery[$i][25] & @CRLF & _<br/> "StatusInfo: " & $Battery[$i][26] & @CRLF & _<br/> "SystemCreationClassName: " & $Battery[$i][27] & @CRLF & _<br/> "SystemName: " & $Battery[$i][28] & @CRLF & _<br/> "TimeOnBattery: " & $Battery[$i][29] & @CRLF & _<br/> "TimeToFullCharge: " & $Battery[$i][30])<br/>Next<br/><br/><br/></code><br/><br/>下圖是在我的電腦執行的畫面,參數如下所示:<font size='2' face='Arial'><br/></font>EstimatedChargeRemaining:還有幾%的電<br/>EstimatedRunTime:還有幾分鐘的電<br/><br/><div align='center'><font size='2' face='Arial'><img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzco4MoqT4CfC3ke_sI6v3ysLO0iHTb0wva6SmckgzJf_YHult9g2PTjkttjdSPJW3T3H6VKzDIT1GRFptT3R7aJGaKssmhaOUpq3lgJgqPQa2QOkIolYZ34x4g8dShvxvYMVS/?imgmax=800' style='max-width: 800px;'/></font><br/></div><br/><br/><div class='zemanta-pixie'><img src='http://img.zemanta.com/pixy.gif?x-id=c9940341-8385-4540-9cf3-0a127f9cba90' class='zemanta-pixie-img'/></div></div>malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com1tag:blogger.com,1999:blog-9161127.post-49505190391206391422009-02-28T11:33:00.001+08:002009-02-28T11:33:43.744+08:00autoit - 取得電腦軟硬體資訊<div xmlns='http://www.w3.org/1999/xhtml'>之前就一直想了解如何取得電腦的軟硬體資訊<br/>但是一直不得其門而入(其實是沒有強烈需求,人就懶的找啦~)<br/>剛好最近有人問了一些問題,不知道如何做,而爬文找到了這一篇資料<br/>原文的作者有提供一個CompuInfo.au3的UDF讓人方便使用<br/>(<a href='http://www.autoitscript.com/forum/index.php?s=911e3ea506a35215f449a44c75d79d74&showtopic=29404&st=0'>原文連結</a>)<br/>它的原文就說了:A collection of UDF's that assist in gathering and setting information about a computer (Software and Hardware).<br/>一個收集和設定電腦軟硬體資訊的UDF<br/><br/>它有以下的函數功能:<br/>_ComputerGetBootConfig: 開機設定資訊<br/>_ComputerGetDependantServices:Service項目<br/>_ComputerGetDesktops: 桌面設定資訊(包含螢幕保護程式、桌布)<br/>_ComputerGetEventLogs: log資訊<br/>_ComputerGetExtensions: 副檔名資訊(用途、開啟程式)<br/>_ComputerGetGroups: 群組資訊<br/>_ComputerGetLoggedOnUsers: 已登入的使用者資訊<br/>_ComputerGetOSs: 作業系統資訊(系統名稱、開機磁碟、時區、安裝時間、語言)<br/>_ComputerGetPrintJobs: 列印工作資訊<br/>_ComputerGetProcesses: 程序資訊<br/>_ComputerGetServices: Service資訊<br/>_ComputerGetShares: 分享資料夾資訊、權限<br/>_ComputerGetSoftware: 已安裝的軟體資訊<br/>_ComputerGetStartup: Startup項目資訊<br/>_ComputerGetThreads: 運作的thread資訊<br/>_ComputerGetUsers: 全部使用者的資訊<br/>_ComputerGetBattery: 電池資訊<br/>_ComputerGetBIOS: BIOS資訊<br/>_ComputerGetDrives: 磁碟資訊(如C:\、名稱、總空間、可用空間)<br/>_ComputerGetKeyboard: 鍵盤資訊<br/>_ComputerGetMemory: 記憶體資訊<br/>_ComputerGetMonitors: 螢幕資訊<br/>_ComputerGetMotherboard: 主機板資訊<br/>_ComputerGetMouse: 滑鼠資訊<br/>_ComputerGetNetworkCards: 網路卡資訊<br/>_ComputerGetPrinters: 列表機資訊<br/>_ComputerGetProcessors: 處理器資訊<br/>_ComputerGetSoundCards: 音效卡資訊<br/>_ComputerGetSystem: 系統資訊<br/>_ComputerGetSystemProduct: (這一項真的不知該怎麼翻才好)<br/>_ComputerGetVideoCards: 顯示卡資訊<br/><br/>怕有人不會使用,所以還是簡單說明一下好了<br/>首先,先備好我們的工具:<br/>將_CompuInfo的au3檔案放到「include」資料夾中<br/>(或是直接下載:<a href='http://www.autoitscript.com/forum/index.php?act=attach&type=post&id=12096'>CompuInfo.au3</a>和<a href='http://www.autoitscript.com/forum/index.php?act=attach&type=post&id=12094'>CompuInfo範例</a><br/> 或是我的下載:<a href='http://maloyang.googlepages.com/_CompInfo.au3'>_CompuInfo.au3</a>和<a href='http://maloyang.googlepages.com/CompInfoExamples.au3'>CompuInfoExamples.au3</a>)<br/>(在我的程式中,我是將原作的CompuInfo.au3改名成_CompuInfo.au3<br/>這樣放入include資料夾中,以後可以很快的分出哪些是外加的UDF)<br/><br/>接著就可以開始撰寫我們的程式了<br/>對於其中的使用方式<br/>我後面會再加以解說<br/>不過,其實它所提供的範例程式已經足夠大家使用了<br/>我只是把其中的一部份拿出來詳加解釋<br/>以方便自己以後要找資料時不用再如此費神:)<br/><br/><br/><div class='zemanta-pixie'><img src='http://img.zemanta.com/pixy.gif?x-id=2daad560-9a78-4a8a-a921-0564a9f5aa67' class='zemanta-pixie-img'/></div></div>malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com1tag:blogger.com,1999:blog-9161127.post-59682722602469695722009-02-23T21:20:00.002+08:002009-02-23T21:24:56.064+08:00新增!! 程式範例下載為了讓大家在參考程式範例時不用因為從網頁上copy下來<br />而造成整體的編排跑掉,而難然閱讀的困擾<br />因此,今後將附上程式範例的下載<br />以方便各位看倌的學習<br />當然如有其它更好的建議,請提供給我囉<br />我會嘗試看看的:)malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-38303788299665416982009-02-10T22:19:00.004+08:002009-02-23T21:14:51.908+08:00autoit - 讀取密碼再填入文字框基於有不少人對這項議題的方法似乎很有興趣<br />因此,針對此寫了一小段程式,並附上解說<br />在執行程式前,請先看完下面的說明再動作<br />才不會執行無效(<a href="http://maloyang.googlepages.com/PhotoCom_example.au3">程式下載</a>)<br /><code><br />;==================================<br />;從檔案unit.txt檔中讀出密碼、帳號<br />;再填入視窗中,某一控制項<br />;==================================<br /><br />;讀UNIT.txt中的帳號密碼,如果沒有讀取成功,就離開程式<br />$file = FileOpen("UNIT.txt", 0)<br />; Check if file opened for reading OK<br />If $file = -1 Then<br /> MsgBox(0, "Error", "Unable to open file.")<br /> Exit<br />EndIf<br /><br />;讀出檔案中的資訊,若出錯,則結束程式.<br />$user_id = FileReadLine($file) ;讀取帳號<br />$user_pw = FileReadLine($file) ;讀取密碼<br />If @error = -1 Then<br /> FileClose($file)<br /> Exit<br />EndIf<br /><br />WinActivate("本機磁碟 (D:)") ;把title="本機磁碟 (D:)"的視窗叫出來<br />ControlFocus("本機磁碟 (D:)", "", "Edit1") ;移動游標到Editl的元件上<br />Send($user_id & $user_pw);送出帳號、密碼<br /><br />FileClose($file)<br /></code><br />----<br />(1) 在程式要開始執行前要先打開一個"本機磁碟 (D:)"的視窗,如下圖<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqplSi97AavkfoYGirwgCutbVvkWYoPO_5dBbEF0yrZrLP8r22KK4x3RruX4uFvH_0xQ99PKSP-bes3z167YnNOCq0RXRp29qs0yYWQOS_tyBLEd-94UsX6rP9tSk7fsa6-rnr/s1600-h/autoit1.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 303px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqplSi97AavkfoYGirwgCutbVvkWYoPO_5dBbEF0yrZrLP8r22KK4x3RruX4uFvH_0xQ99PKSP-bes3z167YnNOCq0RXRp29qs0yYWQOS_tyBLEd-94UsX6rP9tSk7fsa6-rnr/s400/autoit1.jpg" alt="" id="BLOGGER_PHOTO_ID_5301178428899049378" border="0" /></a>(2) 用autoit所附的工具Au3Info.exe來抓出想要填入的欄位代號,如下所示,即為圖中的<strong>CLASSNN,</strong>將其填入第三個欄位,其它欄位的填法查autoit的說明應該就很清楚了<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtKrexVei6KGLnk7AdTyxVQvKiuflvI8kWf5ep0BNGkIOF4ZYK4Fjv6l1Fq44umfbv1g33EOwFd_Yh10nYdNw1pEsyU1qfo8YlFAPT-21HKxA9PniwBWthyxkHfPDUA6ac5wPJ/s1600-h/autoit2.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 318px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtKrexVei6KGLnk7AdTyxVQvKiuflvI8kWf5ep0BNGkIOF4ZYK4Fjv6l1Fq44umfbv1g33EOwFd_Yh10nYdNw1pEsyU1qfo8YlFAPT-21HKxA9PniwBWthyxkHfPDUA6ac5wPJ/s400/autoit2.jpg" alt="" id="BLOGGER_PHOTO_ID_5301178549595784802" border="0" /></a>(3)若填好後,就要按Enter鍵,那就把原來的程式改成:Send($user_id & $user_pw & "{ENTER})<br />(4)但是有時候有的程式是沒辨法用鍵盤的Enter鍵的,這時候就使用ControlClick來按下「確定」按鈕。<br /><br />至於之前有人問過用<br /><br /><code><br />ControlSetText("JIHSUN HTS","[7001]","TStockEdit2","$file" )<br /></code><br />為何不行?<br />這是因為最後面的參數是個變數,所以應該改成<br /><code><br />ControlSetText("JIHSUN HTS","[7001]","TStockEdit2",$file )<br /></code><br />我想就可以動了吧:)malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-52849477996805596652009-02-09T21:53:00.002+08:002009-02-09T22:01:35.492+08:00autoit - EXCEL的UDF正式被收入囉前一陣子autoit v3.3.0.0出來囉<br />這一次的重要更新,我想莫過於EXCEL的UDF終於加入了<br />之前是國外有人寫這一個UDF<br />大家也很有興趣使用它<br />只是一直未被加入正式的UDF名單<br />直到去年底終於被加入了<br />另外一個改變就是windows 9x和NT4.0的支援已被移除<br />不過,我想也沒什麼人在用這麼舊的版本了吧malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-21788158705593998722009-01-27T22:05:00.005+08:002009-01-27T22:31:29.448+08:00Octave-畫出ODE解的圖目前看matlaab的書好像都沒有介紹到<br />怎麼畫出像工程數學教科書中的圖形<br />每次看到他的解就覺的很炫<br />但是即使有了像matlab、Octave這樣的好工具<br />也只會畫特解,而不會畫像<br />y''+0.2y'+4.01y=0<br />這樣一個簡單方程式的圖<br />更不用說難一點的了<br /><br />目前只想到用以下的方法來畫出自己想要的圖形<br />以 y=exp(-cx)*sin(2x)來說 ( c為常數,程式中的圖形c = 0.1, 0.2, 0.3, 0.4, 0.5)<br />想將其圖形畫出,但又不想自己判別x的切割數<br />因此,以fplot直接畫出方程式的圖形<br />而在這邊需要用的到方式就是對「方程式的字串」進行處理<br />方法也很簡單,只要將方程式切割,再把字串合併畫出即可<br />不好意思,我對matlab這種語言真的不熟,所以這方式感覺不是很好<br />不過能畫出我要的圖也就夠了<br />如果有人可以提供更好的方式,請指導一下囉~<br /><code><br />fplot('exp(-0.1*x)*(sin(2*x))', [0 30], 'b')<br />hold on<br />for ii = 2:5,<br /> fplot(strcat('exp(-0.1*', num2str(ii), '*x)*(sin(2*x))'), [0 30], 'b'),<br />end;<br />fplot('exp(-0.1*x)', [0 30], 'y')<br />fplot('-exp(-0.1*x)', [0 30], 'y')<br />grid on<br />hold off<br /></code><br /><br />圖形如下:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaB1Aq4Nu_8A9vlYITfPvf8UBiYA2m7XlhBJPsp4s-BzSUg2uYx1VqVUqAqmULkaCCiccPKrVMs3Kw4raH0PgsjYo9mQSCYcnJiVj-lIcrf6oy-ntdzbB9n8i01PUHylSMO_Yi/s1600-h/ODE1.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 256px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhaB1Aq4Nu_8A9vlYITfPvf8UBiYA2m7XlhBJPsp4s-BzSUg2uYx1VqVUqAqmULkaCCiccPKrVMs3Kw4raH0PgsjYo9mQSCYcnJiVj-lIcrf6oy-ntdzbB9n8i01PUHylSMO_Yi/s400/ODE1.jpg" alt="" id="BLOGGER_PHOTO_ID_5295980847917769490" border="0" /></a>malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-35643848924747748592009-01-11T21:36:00.006+08:002009-01-11T21:58:55.195+08:00Octave隨身帶-QtOctivesorry最近有些事在忙,所以好一段時間沒有上來po文<br />對於訪客問的關於AutoIt的問題,近期會再補上<br />好~就讓我們進入今天的主題吧<br /><br />本來我是使用<a href="http://freemat.sourceforge.net/">freemat</a>幫我做一點計算工作的<br />因為freemat只要安裝好了之後<br />再把它的安裝資料夾,複製到隨身碟後<br />就可以帶著走,不需要特別安裝就可以使用(對公司有鎖權限的很好用丫~)<br />而且它又有視窗介面!!<br />不過最近因為要解ODE方面的東西,而freemat只有ODE45<br />且有些指令和matlab不大相同,有時候找不太到資料可用<br />於是,就開始在網路上找看看有沒有其它好用的軟體可以用<br />而且是portable的<br />尋找多時後,終於讓我找到了「它」-->「<a href="http://www.gnu.org/software/octave/">Octave</a>」<br />不過沒有視窗介面,且不是portable的,這一點不太滿意<br />忽然發現了「<a href="http://qtoctave.wordpress.com/">QtOctave</a>」<br />這一個軟體是blog作者,使用QT製作它的GUI介面,以方面他人使用<br />更重要的是!!你可以下載它的zip檔,帶著四處使用(請到<a href="https://forja.rediris.es/projects/csl-qtoctave/">這兒</a>下載)<br /><br />下載下來後,只要解壓縮就可以使用<br />在網路上有看到有人遇到解壓後沒辨法使用的情形<br />據說是因為路徑有「空白」(如在C:\Program Files底下)<br />因此如果你也有遇到這樣的問題,請照做吧<br />(我放在桌面也沒這個問題,也許是新版已改進此問題了吧)<br /><br />後續會在張貼使用後的心得,和一些教學<br />請期待吧~~:)malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-45946631527178313022008-09-14T10:48:00.002+08:002008-09-14T11:01:27.052+08:00ScrapBook - firefox資料收集的外掛本來就知道有這樣的一個外掛<br />只是一直沒有去研究它是怎樣的一個東西<br />昨天閒來無事,裝來玩玩<br />看看大家所說的「好東西」做底有什麼樣的功能<br />一用之下! 驚為天人丫!!<br />原來只要藉著scrapBook的側欄,就可以使用拖拉的方式把資料收集起來<br />使用方式可以參考<a href="http://blog.xuite.net/stanleylan/blog/4375098">這裡</a>,基本使用就不多說了<br /><br />我看中的是另外一方面的使用方式<br />常常我在收集資料時會到網路找pdf檔<br />以期獲得比較有參考價值的資料<br />但是一點一點慢慢的下載來看真的很累<br />於是我就使用scrapbook可以「往下延伸一階」並設定抓pdf檔的功能<br />配合google的search功能<br />先到google打上要找的字串 ,再設定只要找pdf檔<br />搜尋後,直接用scrapbook抓這一個搜尋頁面和下一層網頁<br />就可以一次先抓完,再進到firefox的資料夾中有一個「scrapbook」資料夾<br />裡面就是剛剛抓到的東西<br />從裡面翻看看有沒有自己要的東西就可以了<br />有時候還會有意外的驚喜呢!~malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com1tag:blogger.com,1999:blog-9161127.post-8833882898304459072008-08-24T23:07:00.001+08:002008-08-24T23:07:00.270+08:00ACM中使用Java - 範例程式本來呢,在acm本身的網頁中就有使用Java來解第100題的範例了<br />我應該是不用再寫範例的<br />但是,它的範例真的是太煩人了<br />用起來總是不方便(雖然也只是複製貼上,但就是不舒服)<br />因此我在網路上找到了方法,有興趣請看<a href="http://www.qqread.com/java/2008/05/n409336.html">這裡</a>,<br />另外,我以scanner的方式解10071題當成範例<br />如果有需要的話請使用(其實是,我自己換電腦寫時,要抄比較快:))<br /><br /><code><br />//start<br />//==========================<br />//= 用scanner的方式最易寫<br />//==========================<br /><br />import java.io.BufferedInputStream;<br />import java.io.IOException;<br />import java.util.Scanner;<br /><br />public class Main<br />{<br /> public static void main(String args[]) throws IOException<br /> {<br /> // 網路上說加上buffer的方式會比較快,要寫個test來試一下有差多少<br /> Scanner cin = new Scanner(new BufferedInputStream(System.in));<br /> int v, t;<br /> <br /> while (cin.hasNext())<br /> {<br /> v = cin.nextInt();<br /> t = cin.nextInt();<br /> System.out.println(2*v*t);<br /> }<br /> }<br />}<br />//end<br /></code>malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-26089811204943800462008-08-17T21:12:00.002+08:002008-08-17T21:28:55.774+08:00ACM使用Java的怪現象從大學畢業後就沒有再寫過這邊的題目了<br />話說以前都是用C或C++在寫ACM的題目的<br />而目前主要都是以Java在寫程式<br />想試試看在ACM用Java解題會是如何呢?<br />首先,到online Judge<a href="http://acm.uva.es/problemset/">首頁</a>,點選右下角「How to」中的「Submit Java」<br />即可以得到第100題的Java範例<br />裡面提到:online Judge對於Java的支援是比較差的(沒用過也不知道)<br />但是,不管它!!<br />有範例,當然就以這範例先送一次看看囉,還可以免費賺一題<br />連到<a href="http://icpcres.ecs.baylor.edu/onlinejudge/">這兒</a>是acm新的judge server<br />現在新版的需要用申請一個新的帳號<br />要傳送之前要先登入進去才可以上傳動作<br />....<br />沒想到,用他的範例一傳,結果:time exceed<br />超出時間!!...<br />不信邪! 再傳一次,結果是…「過了」!!<br />這這…這真難解釋<br />沒有修改的程式碼,第一次太慢,第二次就過了<br />難到是,第一次上傳時把java換醒<br />所以第二次java要再執行的時間就比較短了嗎?<br />有時間可能要好好研究研究囉<br />當然如果有人知道原因,請告訴我吧~<br />我會很感謝你的!malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-45141358373318800122008-08-12T22:01:00.004+08:002008-08-12T23:03:47.399+08:00eclipse的影音教學之前在看eclipse的書,總覺得比起以前使用的c++ IDE軟體<br />少了不少功能,最主要的功能就是Code Assist一直找不到<br />後來終於找到了一個動畫教學的網頁<br />雖然是英文的,但是因為是動畫,<br />所以不懂英文的,直接看動畫也可以看的懂個大概,<br />他的網頁請看<a href="http://eclipsetutorial.sourceforge.net/">這裡</a>,<br />在sourceforge的<a href="http://sourceforge.net/projects/eclipsetutorial/">主頁面</a>點選download,<br />就可以下載到所需要的動畫<br />而看的順序現在都排好了,照著看就可以了<br />如果沒時間,可以先看:<br /><a href="http://sourceforge.net/project/showfiles.php?group_id=200662&package_id=238344">1、Total Beginners</a><br /><a href="http://sourceforge.net/project/showfiles.php?group_id=200662&package_id=238344"></a><a href="http://sourceforge.net/project/showfiles.php?group_id=200662&package_id=246710">2、Persistence Tutorial</a><br />可以得到以下的能力:<br /><ul><li>有Java的基本概念</li><li>eclipse的環境設定</li><li>Code Assist的介紹(在他的系統用"Crtl Space",但我用卻是按"Alt /" (可以自己試試)</li><li>Source generate 程式碼自動產生的方法</li><li>document說明文件的連結方式</li><li>還有將原始碼引入的方法(可藉由sun的原始碼來學習一些程式的技巧)</li><li>Unit Test的使用方法、概念 (有個實例做為引導,會學的很多!!)<br /></li></ul> 如果有心要用eclipse來學Java,非常推薦用這一套影音教學來學習<br />相信比起目前市面上賣的一些濫芋充數的入門書籍,還要踏實的多了<br /><br />而其它幾個教學單元是最近又新增的,我也還沒有看過<br />晚點我看完再分享到底接著可以從這些單元中學到什麼東西:)malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0tag:blogger.com,1999:blog-9161127.post-4538634405049278572008-08-07T22:41:00.000+08:002008-12-12T02:53:14.665+08:00抓圖軟體(畫面截取) - Capture.Net這是一個目前我很常用的一個工具<br />雖然它不只是可以截取畫面而已<br />但不管在工作上,工作以外<br />我在抓畫面幾乎都只用這一個軟體 - <a href="http://s630417.myweb.hinet.net/Capture.htm">Capture.Net</a><br />在它的主頁中有二個版本可以下載<br />直接下載 Free version就很夠用了<br />專業版呢? 請直接看它網頁的說明<br />說實在的,功能真的多的可怕<br />而我blog的圖面也都是用這個軟體抓的<br />使用起來真的很直覺,所以也就不再多做說明了<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwQryAVDLRAqrPGmUr5XN-o1YWu3OwtmuuU7hcIruJYU37U-UCvFkLMRF7GQMmcj1ALXCo5U7U7G83Z5AyncBNWKcneJBGHpAe-FdfESb7MMCyOgmaOCmS2Jp929zVNffo2LKX/s1600-h/captureNet.gif"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwQryAVDLRAqrPGmUr5XN-o1YWu3OwtmuuU7hcIruJYU37U-UCvFkLMRF7GQMmcj1ALXCo5U7U7G83Z5AyncBNWKcneJBGHpAe-FdfESb7MMCyOgmaOCmS2Jp929zVNffo2LKX/s400/captureNet.gif" alt="" id="BLOGGER_PHOTO_ID_5230307076071582850" border="0" /></a>malohttp://www.blogger.com/profile/13561393352936068107noreply@blogger.com0