網頁

2015年7月17日 星期五

[VirtualBox] Setup development environment

 

這邊說明 VirtualBox 設定的一些步驟. 這部份比較零碎, 當做備忘.

  • Internet Connection,  VirtualBox 裡面的 Ubuntu 使用 Windows Host 的網路連線
  • Boot to Console, Ubuntu 開機時, 直接進入 console 的登入畫面
  • Share Folder, VirtualBox 裡面的 Ubuntu 和 Windows Host 共用資料夾, 分享檔案
  • VirtualBox extension pack, 安裝 VirtualBox 的 extension pack
  • Share WebCam, VirtualBox 裡面的 Ubuntu 使用 Windows Host 的 Webcam

 

Internet Connection

網路連線是 linux based 系統不可或缺的必要條件, 軟體/系統的更新都需要線上作業, VirtualBox 開機時, 有時候會連不上, 這時就需要修改 VirtualBox 的網路配置.
選擇到要啟動的虛擬機器, 然後按上面的設定
image
選擇網路
image
在 “附加到”的後面, 選擇要連接的網路卡, 然後按確定
image
回到 Ubuntu 的畫面, 重新開機, 就可以連上網路.

Boot to console

大部份的時間, 我們會在 console mode 下命令, 所以就不需要浪費時間等 GUI 啟動, 再進入 console mode, 以下 修改 /etc/default/grub, 讓開機的時候直接進入 console, 而不要啟動 GUI 的畫面.
先備份要修改的檔案
$ sudo cp –n /etc/default/grub /etc/default/grub.backup
如果要復原
$ sudo mv /etc/default/grub.backup /etc/default/grub
$ sudo update-grub
修改 /etc/default/grub $ sudo nano /etc/default/grub mark 掉 GRUB_CMDLINE_LINUX_DEFAULT=”quiet splash” 這一行 修改為 GRUB_CMDLINE_LINUX=”text” 取消 GRUB_TERMINAL=console 這一行的 mark 參考附圖的修改 virtualbox-B2

存檔後更新

 $ sudo update-grub

$ sudo reboot

 

Share Folder

建立 VirtualBox 和 Windows 的共用資料夾, 在需要交換檔案的時候, 就會很方便.
1. 設定 Windowds 上面要共用的目錄
在下方的狀態列上的資料夾圖示上面按右鍵, 會出現共用資料夾設定的選單,
image
因為還沒設定好, 會出現錯誤的警告.
virtualbox-C3
開啟共用資料夾設定畫面.
virtualbox-C4
按右上方的圖示新增共用資料夾
virtualbox-C5
點選資料夾路徑後面的下拉選單, 選取其他, 再選擇要從 Windows 上共用的資料夾. 並且設定成自動掛載, 設為永久.
image
確定後, 重新開啟 Ubuntu 以安裝 guest additions
2. 設定 Ubuntu 上的共用目錄
先安裝 dkms
$ sudo apt-get install dkms
安裝完後, 重新開機. 並且在登入後, 虛擬機器的選單 裝置/插入 Guest Additions CD 映像, 選擇 virtualbox-guest-additions.iso. 如果 Ubunto 的安裝光碟仍在系統中, 就先他移除. 然後掛載 cdrom
$ sudo mkdir /mnt/cdrom
$ sudo chmod 777 /mnt/cdrom
$ sudo mount /dev/sr0 /mnt/cdrom
$ cd /mnt/cdrom
$ ./VBoxLinuxAdditions.run –nox11
然後看看是否已經掛入
image
把 shared 這個分享目錄掛到 /mnt/shared
$ sudo mount –t vboxsf –o rw shared /mnt/shared
這樣就可以在 /mnt/shared 下面看到 windows 分享的目錄
修改 /etc/fstab 以自動掛入分享目錄
virtualbox-CA

VirtualBox extension pack

VirtualBox 有一個 extension pack, 用來支援不同平台間的資援分享, 以下說明下載安裝.

下載 :

安裝

在 VirtualBox 的選單中, 選擇 檔案, 喜好設定,

image

在左邊的選項中, 選擇擴充套件

image

按最右邊的瀏覽按紐.

image

開啟 extension pack

image

選擇安裝後, 出現授權同意畫面, 捲動到最下面之後, 選擇同意.

image

自動完成安裝後, 提示 OracleVMVirtualBoxExtensionPack 安裝成功.

image

Extension Pack 顯示在 擴充套件中

image

Share Web Cam

確定虛擬機沒有在執行中, web cam 也沒有在使用中

開啟 VirtualBox, 選擇主畫面的設定值按紐

image

選擇左邊選項中的 USB

image

勾選啟用 USB 控制器, 以及啟用 USB 2.0 (EHCI) 控制器

image 

按下右邊帶 + 號的新增按紐. 會出現幾個 USB device. 如果有不明裝置, 只顯示 PID/VID, 可以打開 windows 的裝置管理員, 對照 PID/VID 把它選進來.

image

image

選完之後, 重新開啟 VirtualBox , 並啟動 Ubuntu, 這時才會開始安裝驅動. 再關掉 Ubuntu. 回到 VirtualBox 的主畫面, 選擇設定值, USB, 加入篩選器, 這時候就會出現偵測到的 Webcam. 把它選進來.

image

重新啟動 Ubuntu, 可以看到這個 web cam 已經進來了.

Ubuntu

2015年7月14日 星期二

[VirtualBox] Windows 7 + Virtual 4.3 + Ubuntu 14.04


由於作業上的方便, 有時候還是要用到 Windows, 所以後面會以 Windows 7 +  VirtualBox + Ubuntu 做為開發的環境. 這邊先說明 VirutalBox 的安裝.

下載 VirtualBox

現在的版本是 5.0, 不過, 我偏好不要太新的版本, 所以還是使用稍微舊的版本, 在以下 link 下載
https://www.virtualbox.org/wiki/Download_Old_Builds_4_3
下載後執行安裝
virtualbox-01 
接受預設的安裝
virtualbox-02
完全依照預設的選項, 一步一步安裝
virtualbox-03
安裝後開始執行
virtualbox-04
填入虛擬機器的描述名稱
virtualbox-05
設定使用 1 GB 的 RAM
virtualbox-06
選擇立即建立虛擬硬碟
virtualbox-07
套用預設的磁碟映像檔案格式
virtualbox-08
選擇固定大小的硬碟配置
virtualbox-09
選擇硬碟映像檔存放的位置. 並且設定這個磁碟映像檔的大小, 這邊設定成 96 G.
virtualbox-10
VirtualBox 建立磁碟映像檔. 這個動作要很久, 我的電腦了大約 30 分鐘.
virtualbox-11
完成後回到 VirtualBox 管理員的畫面
image
按上面的啟動按紐, 開始進行 Ubuntu 的安裝. 第一次執行會花一些時間. 然後會提示選擇開機光碟映像檔的畫面. 指定開機映像檔之後, 啟動, 就會開始安裝.
image
進入 Ubuntu 的安裝畫面. 按 Install Ubuntu 開始安裝.
virtualbox-A1
選擇安裝時更新.
virtualbox-A2
移除磁碟映像檔中的虛擬磁區.
virtualbox-A3
同意寫入變更到虛擬磁碟.
virtualbox-A4
選擇時區和鍵盤後, 設定自己的名字. 其他的就會自己填入.
virtualbox-A5
開始安裝 Ubuntu
virtualbox-A6
完成後回到登入畫面
virtualbox-A7

2015年7月11日 星期六

[RPi][Android] Install RaspAnd


在 Raspberry 上, 安裝 RaspAnd, 試用 Android.
DSCN8652

需求

  • SD Card, 最少 16 G
  • raspand-android-lollipop-5.1-aptoide-247mb-150527.zip

步驟一, 以 GParted 製作 SD Card partition 分割

GParted 是一個圖形化的 partition 工具, 以下實際操作. 總共需要建立 4 個分割
partition 1 BOOT 512 MB fat32 boot
partition 2 /system 512 MB fat32/ext4  
partition 3 /cache 512 MB ext4  
partition 4 /data remained ext4  
安裝 Gparted
$ sudo apt-get install gparted
執行 Gparted
$ sudo gparted
gparted-01
右上角的 /dev/sda 的位置, 可以選擇要操作的磁碟代號. 如果不清楚, 可以用 fdisk 查詢  $ sudo fdisk –l
gparted-B01
選到我們要操作的磁碟代號後. 先刪除原有的 partition. 目前這個磁碟共有 4 個 partition, /dev/sdb1, /dev/sdb2, /dev/sdb3, /dev/sdb4 在 partition 的那一列上, 按右鍵, 選擇 unmount/delete, 通通刪除.gparted-A3
這時候, 上面會出現打勾 (執行), 箭頭 (取消) 這兩個符號. 按下打勾, 執行.
gparted-04
真的要執行嗎 ? 是的, 請按下 Apply.
gparted-05
等它執行完, 關閉.gparted-A4
接著, 建立新的 partition. 在橘色的那一列, 按右鍵, new, 建立新的 partition. gparted-07
注意, Free space preceding 要設定成最小. 建立完 4 個 partition.記得要打勾.
gparted-A5
這樣就完成了分割.
 gparted-09
在 partition 1 的上面按右鍵, 選擇 Manage Flags, 設定成 boot.gparted-10
gparted-B01
注意: 用 64 G 的卡, 實驗是失敗的. 後來換用 32 G 的卡, 就成功的跑起來. 但是不能確定和卡是不是有絕對的關係. 附圖的部份, 有些不是 32 G 的卡, 不過這些都只是操作相關, 不會有影響. 最終的結果請參考以上這一張.

步驟二, 複製檔案到 SD card

解壓縮 raspand-android-lollipop-5.1-aptoide-247mb-150527.zip
$ unzip raspand-android-lollipop-5.1-aptoide-247mb-150527.zip
進入 raspand 目錄
cd raspex-android-x86-lollipop-5.1-aptoide-150527
參考前面製作的 partition, 把 boot 複製到 partition 1, system 複製到 partition 2,
$ sudo mkdir /mnt/SD
$ sudo chmod 777 /mnt/SD1
$ sudo mount /dev/sdb1 /mnt/SD1
$ cd boot
$ cp * /mnt/SD1
再複製 system
$ sudo dd if=system.img of=/dev/sdb2 bs =1M

步驟三, 用 RaspAnd 開機

一開始就會出現 Android 的字樣. 過了很久之後, 大約 5 – 10 分鐘, 才會出現 Android 的操作畫面.

 


2015年7月6日 星期一

[Android] Introduction to ADB (Android Debug Bridge)


簡介

Android Debug Bridge (adb) 是一個多功能的命令列工具, 可以用來和模擬裝置和實體裝置間溝通. 它是一個包含 3 個元件的 client-server 的程式
  • client. client 運行在開發平台上, 可以從命令列執行. 其他的 Android 工具, 例如 ADT plugin 和 DDMS 也會使用到.
  • sever. server 是一個運行在開發平台的背景程式. 它用來管理 client 和模擬裝置或實體裝置上的 daemon 的通訊.
  • daemon, 運行在模擬裝置或實體裝置上的背景程式.

ADB 在那裡

adb 在 Android SDK 的目錄下的 platform-tools 目錄下. Android SDK 又在那裡呢 ? 如果使用 Android Studio, 可以在 Tool/Android/SDK manager 的這個畫面,
image
 

ADB 基本命令

  • adb install, 從開發平台, 不經過 Google Play Store, 直接安裝應用程式
  • adb uninstall, 從開發平台, 直接移除應用程式
  • adb push, 從開發平台複製檔案到實體裝置
  • adb pull, 從實體裝置複製檔案到開發平台
  • adb logcat, 列印實體裝置的偵錯訊息
  • adb shell, 從開發平台登入到實體裝置的 linux 提示.
  • adb shell command, 從開發平台執行實體裝置的特定命令

ADB 範例

首先, 看看手機上安裝了那些應用程式
adb shell pm list packages
image
注意, 命令後面加的 | more 只是因為避免畫面捲動太多. 實際上不見得需要.
然後看看它是安裝在那一個路徑. tw.com.greenmaple.triwebview 是我自己的測試 app, 所以請用你自己的, 或是其他的 app 代替.
adb shell pm path tw.com.greenmaple.triwebview
image
它是安裝在 /data/app/tw.com.greenmaple.triwebview-2/ 下面, 用 adb pull 把它抓下來
adb pull /data/app/tw.com.greenmaple.triwebview-2/base.apk
image
然後把它從實體裝置中解除安裝
adb uninstall tw.com.greenmaple.triwebview
image
再重新安裝
adb install base.apk
    image