2013年11月30日 星期六

Linux kernel 開發基礎 (一)- Driver 基本概念

開發Linux kernel driver時

經常使用make menuconfig來進行kernel的設定

簡單來說,

這個指令會掃描每個目錄中的Kconfig,

收集其中的訊息與相關設定並將其秀在視窗上供開發者方便設定kernel,

開發者設定完畢後儲存會將這些設定統一存在Linux kernel 根目錄底下

一個隱藏檔: .config

定義的資料有可能長這樣:

config Hello
bool "Hello title"
depends Module
help
Hello detail message




一般而言,

如果沒有設定driver載入的預設值,

系統會出現Y/N/M 三種選項讓你選擇每個driver的載入方式.

在Android的Linux kernel中

通常會把預設值放在kernel/arch/arm/configs目錄裡面

在每個目錄裡面除了Kconfig之外還有一個檔案Makefile,

定義有哪些source code需要complier.

舉例來說

obj-y += hello.o

意思是目錄中有一個hello.c需要complier

綜合以上所說,

簡單來說一個最精簡的Linux kernel driver需要三個檔案

driver本身.c ,Kconfig , makefile

2013年11月9日 星期六

[Linux]Git 基本指令

Git 在Linux中用於版本控制相當常見
在windows下也能夠使用
(windows下載點)

一些常用的基本指令:

A.第一次下載
git clone ssh://USER@ip位址/git目錄


B.單一檔案新增或者有變更 要上傳到server
1. git add 檔案名稱
2. git commit -m "這裡寫註解(簡單描述下)"
3. git push


C.檔案放棄變更 並還原到上次commit的狀態
情況0:當執行完 B-1 git add 檔案名稱 ,這個步驟時候想取消檔案的add,不保留修改的單一檔案
1.git reset HEAD 檔案名稱

情況1:當執行完 B-2 git commit -m "這裡寫註解" ,這個步驟時候想取消單一檔案的commit,不保留修改的單一檔案
1. git checkout -- 檔案名稱

情況2:當執行完 B-2 git commit -m "這裡寫註解" ,這個步驟時候想取消多個檔案的commit,不保留修改的多個檔案
1.git reset --hard HEAD^

情況3:當執行完 B-2 git commit -m "這裡寫註解" ,這個步驟時候想取消多個檔案的commit,保留修改的多個檔案
1.git reset --soft HEAD^


D.從遠端更新
1.git pull


E.新增TAG
1.git tag -a Tag名稱 -m "message.."
2.git push origin Tag名稱


F.刪除TAG
1.先刪除遠端tag:
git push origin :refs/tags/Tag名稱
2.刪除local端
git tag -d Tag名稱


G.初始設定(第一次上傳code)
1.mkdir 目錄名稱
2.cd 目錄名稱
3.git init --bare --shared
4.git remote add origin ssh://USER@ip位址/git目錄

2013年11月5日 星期二

台中新社花海

2013年


台中新社花海


節到了

每年新社都會舉辦賞花活動

官方網址:http://flowersea.asia.edu.tw/files/40-1057-483-1.php

本次活動將於11/9開幕

當然了

搶先偷跑去看的結果就是有些地方還沒布置好

還沒好也就只能遠遠的拍了

有部分區域還是綠油油的

晚一點是不是會開花就不清楚了

2013年9月6日 星期五

DisplayMetrics 偵測resolution

DisplayMetrics

現在手機以及平板型號眾多.
要設計UI讓每一個使用者得到最好的外觀顯示.
其中一個方法就是透過DisplayMetrics 偵測resolution
再來調整應用程式個元件之間的距離. 間隔.或者字型大小.

執行畫面:

原始碼:
        @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
//show "Resolution:"
TextView view1=(TextView)findViewById(R.id.textView1);
view1.setTextSize(25);
view1.setText("Resolution:");
TextView view2=(TextView)findViewById(R.id.textView2);
view2.setTextSize(20);
//取得螢幕大小
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
 
view2.setText(Integer.toString(metrics.widthPixels)+"X"+Integer.toString(metrics.hei                          ghtPixels)); 
return true;
}

附上範例程式下載

2013年9月5日 星期四

SeekBar 範例程式

SeekBar  


在調整具有連續變化性的數值是個常見的元件.

例如: 音量. 亮度...等等都是適合使用SeekBar.

在數值變化的同時也改變音量(亮度).

這裡用一個範例程式實現SeekBar並將數值秀在底下TextView中

執行畫面:


範例程式碼:
 //public SeekBar bar1 
//public TextView view1
bar1=(SeekBar)findViewById(R.id.seekBar1);
view1=(TextView)findViewById(R.id.textView1);
       
//set 最大值1000 .  初始值:500
bar1.setMax(1000);
bar1.setProgress(500);
 
view1.setTextSize(40);
view1.setText(String.valueOf(bar1.getProgress()));
   
bar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar arg0) {
// seekbar 結束變更
}
@Override
public void onStartTrackingTouch(SeekBar arg0) {
// seekbar 開始變更
}
@Override
public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {
// TODO seekbar 變更期間
view1.setText(String.valueOf(bar1.getProgress()));
}
});


範例程式點此下載

2013年9月4日 星期三

[wordpress外掛]Picasa and Google Plus Express

在wordpress中想要插入圖片來篇圖文並茂的文章.
若是使用direct-link必須先登入到Picasa 相簿裡面選好圖片.
然後複製圖片網址在貼在文章中.
這樣一來就必須開兩個瀏覽器分頁切換.
並不是很方便.
現在可以透過Picasa and Google Plus Express在撰寫文章時.
就能直接連到Picasa 相簿中選圖.

1.到"控制台" "安裝外掛"搜尋Picasa and Google Plus Express
2. 安裝完馬上啟用.就可以在"設定"中找到Picasa and Google Plus Express環境設定
2-1.
    在設定裡面有五大區域: (以下就拿幾個重要的說明ˊ)

Google+ Express access

     Assign capability to Roles: 選擇可以使用此外掛的使用者

Display properties

     Google user name for site: 填上google plus帳號名稱 (@gmail.com可不加)

     Save last state:                    記住上次插入圖片的位置


     Sorting images in album與Sorting order: 決定選圖時候圖片的排列方式. 可依照"標題"

                                             "檔案名稱"排列
                     

Image properties

     Single image thumbnail size與Single video thumbnail size: 
                                             決定插入的影片或圖片的寬度大小
                                                           

Gallery properties

     Album format: 決定插入圖片縮圖的大小

Advertising

     這有兩個選項. 分別是在LINK之後出現作者訊息以及Paypal贊助選項

3.設定完畢之後就可以在新增文章中. 插入圖片.
4.出現預覽視窗選圖. 選好之後按下"insert" 即可




Android 4.4 正式命名為KitKat



根據官方說法目前安裝Android作業系統的裝置(智慧型手機+平板)已經超過十億
在歷經
Cupcake(1.5) - Donut(1.6) - Éclair(2.0) - Froyo(2.2) -Gingerbread(2.3) - Honeycomb(3.0)
 - Ice Cream Sandwich(4.0) - Jelly Bean(4.1)
這些版本之後
如同前幾代產品.這次同樣也以甜點為代表.
下一代的產品為Android 4.4 正式命名為KitKat

2013年9月2日 星期一

Facebook Social Plugins- Like Box建立

Facebook Social Plugins- Like Box
在社群分享之中經常被使用到
今天就來教大家怎麼建立:

1.要使用Facebook Social Plugins 最好事先建立自己的粉絲專頁
 2.替專頁放上LOGO
 3.把專頁加到"最愛"
4.請Facebook官方 幫忙宣傳網頁. 不需要可以選略過
 5.到粉絲管理頁找到"更新專頁訊息"
 6.記住專頁編號
 7.到Facebook官方plugins網頁找到Like Box
 8.把專頁編號填入URL之後. 就可以開始調整 Like Box 參數
     寬度. 高度. 顏色. 要顯示的元件
 9.到網站新增一個HTML/Java script (這裡以Blogger為例子)
    "版面配置"-->"新增小工具"-->"HTML/JavaScript"
 10.編輯完成儲存版型之後就可以在網站上面找到Like Box
只有簡單的十個步驟
而且美觀又方便
實在是居家旅行
經營網站的必備良藥




2013年8月31日 星期六

VMware Workstation設定

使用windows始終是多數
不想重灌電腦要使用Linux
可以透過虛擬機器實現
這邊就以VMware Workstation 8設定為例子
1.新增一個虛擬機器
 2.選擇自訂
 3.這裡通常選擇最新的版本(相容性較好)
 4-1.如果有安裝光碟(例如: Ubuntu)可以在這一步選擇. 但是快速安裝預設值為英文

    Installer disc: 在實體光碟機放入安裝光碟執行安裝
    Installer disc image file: 利用ISO映像檔安裝
    I will install the operating system later: 待會自行手動安裝
 4-2.設定Ubuntu 登入帳號密碼(在4-1 選擇第3選項不會出現)
 5.設定虛擬機器相關檔案放置路徑
 6.選擇給予虛擬機器的處理器數量
     建議值: (一個雙核心處理器. )
    Number of processors:1
    Number of cores per processor: 2
 7.設定給予虛擬機器使用的記憶體大小
    建議值: 1G以上
 8.如果沒有特殊用途的話  選擇NAT即可
    Use bridged networking:                   擁有自己的IP上網
    NAT:                                                  與實體主機共用IP上網
    Use host-only network nerworking: 只跟實體主機連線
    Do not use a nerwork connection:    不使用網路連線
 9.設定IO Controller 使用建議值即可
 10.設定虛擬機器硬碟參數
     Create a new virtual disk:   在實體硬碟建立虛擬硬碟檔案    (這裡以此選項為例子)
     use an existing virtual disk:  使用已存在的虛擬硬碟檔案
     Use a physical disk:            使用實體硬碟
 11.選擇硬碟類型
12. 設定虛擬硬碟大小
      Allocate all disk space now:       使用實體硬碟
      store virtual disl as a single file    建立單一檔案為虛擬硬碟
      split virtual disk into multiple files:分割為幾個檔案作為虛擬硬碟
 13. 決定虛擬硬碟存放路徑
14. 完成設定

15.如果在4-1有選擇安裝光碟. 重新開機之後會自動安裝

2013年8月30日 星期五

Play Memories Home---(二)把相片上傳到google相簿

社群網站流行
所以sony也把網路分享功能寫到軟體裡
可支援:  YouTube, Facebook, Flickr, Picasa等等
這裡以Picaasa作為例子
1.
點選左上方工具欄裡的"共享"
2.選擇"Picasa Web Albums"
3.可以看到下圖. 把照片放進灰色區域按"下一步"會出現登入畫面.要輸入帳號.密碼
第一次登入要先做以下步驟. 不然無法登入
a. 請先登入下列網址:https://accounts.google.com/DisplayUnlockCaptcha ,輸入Google帳號密碼登入。
b. 將會出現『允許新的應用程式存取您的帳戶』說明頁,請按下方的『繼續』。
c. 下一頁面中會說明請在10分鐘內,使用您想授予帳戶存取權的應用程式登入。

d. 再打開你的PMH來登入Picasa即可。

4.登入成功之後可看到選項. 決定照片放到新建立相簿. 或者放到已經存在的相簿. 選好之後按"上載"
5.傳完之後會看到提示視窗表示完成

2013年8月29日 星期四

在Ubuntu 12.04安裝SKYPE4.2

在Ubuntu 12.04安裝SKYPE4.2


步驟:

1.到官方網站下載適合的版本

2.下載完之後執行.會出現如下.

於右上方點選"安裝".

輸入管理者密碼即可開始安裝




3.第一次登入會出現使用條款宣告.

選擇"同意"繼續



4.可選擇用MSN帳號登入或者skype帳號登入












2013年8月28日 星期三

南投車埕一日遊

南投車埕一日遊


交通資訊:
   

從台中搭乘台鐵區間車直接坐到集集線終點站(車埕)即可

車埕位於南投水里鄉


昔日伐木業發達時期是中台灣一個木材輸出轉運站

 現在轉型發展觀光

 下圖即為當年的貯木池以及天車

 天車是為了將木材放進池中或運材車而建

 佇木池則是用來存放各種原木




下了車馬上就能看到車埕木業館

營業時間:

 平日     09:00~17:30

 假日     09:00~18:00


走進去不遠就能看到各式各樣的木製品


也能到車埕酒莊去試喝下梅酒.

車埕酒莊官網

算是一個古早味還蠻重的一個地方

有興趣的話可以到這邊來走走