2014年2月26日 星期三

Android WiFi架構

1. wpa_supplicant - 用來控制WiFi的daemon
2. Java Frameworks
    frameworks/base/services/java/com/android/server/wifi/
    frameworks/base/wifi/java/android/net/wifi/
3. JNI
    frameworks/base/core/jni/android_net_wifi_Wifi.cpp
4. Legacy HAL(不同於stub HAL)
    hardware/libhardware_legacy/wifi/
5. wlan.ko - WiFi driver module
    wpa_supplicant透由wireless_ext(wext)與driver溝通

測底移除Wine

1. 解除Wine軟體安裝後
  • 將捷徑移除
~/.local/share/applications/wine/Programs
  • 將桌面圖示移除
~/.local/share/desktop-directories
  • 移除相關圖示
~/.local/share/icon
  • 將軟體移除
~/.wine/drive_c/Progream Files

2. 解除Wine安裝後將相關資料夾移除
    直接移除~/.wine目錄

2014年2月24日 星期一

在Linux安裝Office 2010

想在Windows安裝Office 2010,
想到最好的方法就是
使用virtualbox安裝windows 7
再安裝Office 2010~~~

不過老電腦真的跑不動,暈 ><

只好安裝wine,但是又有版本問題,
不是那麼方便~~~

看到有一套playonlinux,可以管理wine版本,
只要照著提示步驟就可以成功安裝了
好方便,在Software Manager上搜尋即可安裝playonlinux ^^

安裝dropbox for thunar

sudo add-apt-repository ppa:rebuntu16/other-stuff
sudo apt-get update
sudo apt-get install thunar-dropbox-plugin

2014年2月20日 星期四

Command line寫register


echo "Value" > /sys/devices/platform/imx-xxx/xxx/xxx/xxxreg

使用WPS Pin Code

使用WPS Pin code時,需注意其規則~

需符合下面的checksum
pin += 3 * ((Pincode / 10000000) % 10);
pin += 1 * ((Pincode / 1000000) % 10);
pin += 3 * ((Pincode / 100000) % 10); 
pin += 1 * ((Pincode / 10000) % 10); 
pin += 3 * ((Pincode / 1000) % 10); 
pin += 1 * ((Pincode / 100) % 10); 
pin += 3 * ((Pincode / 10) % 10); 
pin += 1 * ((Pincode / 1) % 10);
最後pin % 10需等於0

Ubuntu使用Pidgin上Facebook即時通

  1. 首先先打開facebook網頁並登錄
  2. 切換至個人頁面
  3. 記住個人網址名稱,即下面的username
    https://www.facebook.com/username?
  4. 如果用兩步驗證,記得取得應用程式密碼
  5. 開啟Pidgin新增帳號
  6. 選擇Facebook(XMPP)
  7. 輸入使用者名稱與密碼
  8. 完成

2014年2月19日 星期三

微軟OneDrive上路了

因為同時有Android、微軟、Apple裝置,需要一個可以共用的雲端~~~
之前SkyDrive在Android上不能自動備份相片,好像在改為OneDrive後終於可以了~~~
那我的Windows RT也可以用了~~~
不過希望Linux上也能用 ><

OneDrive is Now Available

2014年2月18日 星期二

Linux Mint Menu掛了

編輯Menu
想隱藏Midori瀏覽器的Speed Dial選項
就掛了
無法顯示任何應用程式
$ rm ~/.config/menus/cinnamon-applications.menu
$ cinnamon --replace
解決

偷偷新增Windows 7 administrator帳號

忘記密碼怎辦,
新增一個administrator帳號進入修改就可以了
在Google上搜尋到很多相關的文章

  1. 透過其他的開機方式,0仔是簡單的做隻USB live linux,USB開機後進入Linux
  2. 進入C:\Windows\system32,將osk.exe或Magnify.exe更名備份
  3. 複製cmd.exe並命名為osk.exe或是Magnify.exe
  4. 重新開機進入Windows,登錄畫面可啟動osk.exe或是Magnify.exe即螢幕小鍵盤或放大鏡
  5. 因為已替換,會看到DOS視窗
  6. 使用下面指令新增一位administrator使用者
    • net user username password /add                         (新增使用者)
    • net localgroup administrators username /add       (將使用者加入administrators)
  7. 使用此帳號登入即可使用
所以呢,還是用電腦上的加密晶片加密比較安全,不過很麻煩就是了

找你的Android Phone

之前都是用其他APP來找自己的Android Phone
或是遠端控制權限~~~
在很久之前Google就完成了官方的功能
能定位、更改鎖定方式、甚至移除資料,
以保護手機資料不外洩~
可以上網測試定位與鎖定功能,但是沒法測試移除資料的功能,要重建資料太麻煩了 @@
只能相信它是有用的 ><
Find your lost phone with Android Device Manager

Android Device Manager
在手機上要開啟裝置管理員中Android裝置管理員的選項
在Android Device Manager網頁用Google帳號登錄即可

大家一起來保護手機 ^^

2014年2月17日 星期一

Android HAL與Framework




看了這篇轉:Android HAL實例解析,終於是比較了解Android的HAL、Framework了。


HAL - 有libhardware_legacylibhardware兩種,像WiFi就是
          libhareware_legacy的一種,RIL也是HAL的一種。
Framework - Service及Manager皆屬於此層,有點類似Windows API
JNI - 因為HAL是C code,而Framework是Java code,中間透過JNI做橋接

顯示CPU loading

top -b
top -p <PID>

顯示device information

顯示cpu information
$ cat /proc/cpuinfo

顯示平均loading
$ cat /proc/loadavg

顯示memory information
$ cat /proc/meminfo

顯示device information
$ cat /proc/devices

顯示bus information
$ cat /proc/bus/pci/devices
$ cat /proc/bus/usb/devices
$ cat /proc/scsi/scsi
$ cat /proc/scsi/device_info

顯示modules
$ cat /proc/modules

顯示file systems
$ cat /proc/filesystems

顯示disk information
$ cat /proc/diskstats
$ cat /proc/partitions

2014年2月13日 星期四

Linux Benchmarks

Lmbench is a set of utilities to test the performance of a unix system producing detailed results as well as providing tools to process them. It includes a series of micro benchmarks that measure some basic operating system and hardware metrics:


* file reading and summing
* memory bandwith while reading, writing and copying
* copying data through pipes
* copying data through Unix sockets
* reading data through TCP/IP sockets

How to get connect status


iwconfig apcli0
ifconfig apcli0

Support UIP on Uboot


Modify by below

Uboot/Makefile
Ifdef XXX_USB
LIBS += fs/fat/libfat.a
LIBS += disk/libdisk.a
endif
LIBS += uip/libuip.a

Uboot/uip/unix/unix.c
/*extern*/ int NetUipLoop;

Programming GPIO

#elif defined(XXX_BOARD)
//turn on power LED (GPIO 7,8,12,13)
li t5, XXX_SYSCTL_BASE + 0x0060
// programing for GPIO mode
lw t6, 0(t5)
nop
or t6, 0x1C
sw t6, 0(t5)
nop

li t5, XXX_PIO_BASE + 0x24 // programming GPIO as out pin
lw t6, 0(t5)
nop
or t6, 0x3180
sw t6, 0(t5)
nop

li t5, XXX_PIO_BASE + 0x20 // set GPIO to low
lw t6, 0(t5)
nop
or t6, 0x3180
sw t6, 0(t5)
nop

li t5, XXX_PIO_BASE + 0x2C // set GPIO to low
lw t6, 0(t5)
nop
or t6, 0x3180
sw t6, 0(t5)
nop
#endif

Enable Wi-Fi power management


iwconfig wlan0 power {period N|timeout N}
//set power management modes

WiFi and LAN catch package tools




Sniffer, Wireshare, EtherPeek and Omnipeek

讓Kernel也能支援load module

[*] Enable loadable module support->
     [*] Forced module loading
     [*] Module unloading
     [*] Forced module unloading

build dropbear-0.52 for SSH時fail



Add “Library Configuration->Build zlib”

AP Router最大可支援幾個client連線


  1. 一個SSID可支援255個IP
  2. 受限於RAM & Buffer size
  3. 良好的連線品質,上網所需的頻寬(1~2Mbps)

增加16MB SPI flash support

  • MTD的partition定義在$(SDK)/XXX_SDK/source/linux-2.6.21x/drivers/mtd/XXX/XXX_spi.c
  • Partition functions在$(SDK)/XXX_SDK/source/linux-2.6.21x/drivers/mtd/mtdpart.c
1. Modify Kernel,
    $(SDK)/XXX_SDK/source/linux-2.6.21.x/drivers/mtd/XXX/XXX_spi.c

static struct chip_info chips_data [] = {
/* REVISIT: fill in JEDEC ids, for parts that have them */
{ "AT25DF321", 0x1f, 0x47000000, 64 * 1024, 64, 0 },
{ "AT26DF161", 0x1f, 0x46000000, 64 * 1024, 32, 0 },
//add this line
{ "W25Q32BV", 0xef, 0x40160000, 64 * 1024, 64, 0 }, //S25FL032K
};

2. Modify Uboot,
    $(SDK)/Uboot/drivers/spi_flash.c

static struct chip_info chips_data [] = {
/* REVISIT: fill in JEDEC ids, for parts that have them */
{ "AT25DF321", 0x1f, 0x47000000, 64 * 1024, 64, 0 },
{ "AT26DF161", 0x1f, 0x46000000, 64 * 1024, 32, 0 },
//add this line
{ "W25Q32BV", 0xef, 0x40160000, 64 * 1024, 64, 0 }, //S25FL032K
};

確認USB status

1. lsusb   //check usb id
2. cd /sys/bus/usb/drivers/usb/usb2/2-2/power
    echo "suspend" > level   //setting usb noauto
3. ls -la /dev/ttyUSB*   //check any modem enable

Support IGMP Snooping



Enable “IGMP_SNOOP_SUPPORT” and “IGMP_Proxy”

透過TFTP與MTD燒錄image

$cat /proc/mtd

dev: size erasesize name
mtd0: 00800000 00010000 "ALL"
mtd1: 00030000 00010000 "Bootloader"
mtd2: 00010000 00010000 "Config"
mtd3: 00010000 00010000 "Factory"
mtd4: 007b0000 00010000 "Kernel"

$tftp –gr root_uImage 10.10.10.123
$mtd_write -r write /tmp/root_uImage /dev/mtd4

Uboot flash support

refer Uboot/driver/spi_flash.c
         Uboot/board/XXxxxx/flash.c
         Uboot/include/flash.h

Linux開啟3G USB dongle支援

在make menuconfig select the below configuration items.
[*] Customize Kernel Settings (NEW)
[*] Customize Vendor/User Settings (NEW)

在In Kernel Settings/Linux Kernel Configuration
Device Drivers --->
[*] USB support --->
[*] Support for Host-side USB
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD support
[*] XXX OHCI HCD support
<*> USB Serial Converter support --->
[*] USB Generic Serial Driver
<M> USB driver for GSM and CDMA modems
[*] USB Network Adapters ->
[*] Multi-purpose USB Networking Framework

在Vendor/User Settings.
Network Applications --->
[*] 3G connection (usb_modeswitch, comgt, pppd, sdparm, and
dial-up scripts) 

XXX/XXX_SDK/source/user/hso-1.6 (dongle driver)
XXX/XXX_SDK/source/user/usb_modeswitch-0.9.5/conf (mode switch)

Linux支援Multiple Card Reader


於Kernel make menuconfig
增加SCSI support/Probe all LUNs on each SCSI device

DAB是什麼?




 Digital Audio Broadcasting,數位聲音廣播

安裝所有dependencies

1. sudo aptitude update
2. sudo aptitude full-upgrade

    Ubuntu列出Block device資訊

    lsblk

    Ubuntu更改檔案群組

    chgrp group file

    Android看system message



    可透過dmesglogcat看相關訊息

    2014年2月11日 星期二

    Linux create Floppy image

     1. dd bs=512 count=2880 if=/dev/zero 
        of=floppy.img
        or
        dd bs=1k count=1440 if=/dev/zero 
        of=floppy.img
    2. mkfs.msdos floppy.img
    3. mount -o loop floppy.img /media/floppy

    2014年2月7日 星期五

    安裝x86 Android 4.0開發環境

    1. sudo apt-get install python (>2.6)
    2. sudo apt-get install make (>3.81)
    3. sudo apt-get install git
    4. sudo apt-get install curl
    5. sudo apt-get install libc6:i386 (Ubuntu 13.10)
    6. sudo apt-get install libstdc++6:i386 (Ubuntu 13.10)
    7. sudo apt-get install libncurses5:i386 (Ubuntu 13.10)
    8. sudo apt-get install zlib1g:i386 (Ubuntu 13.10)
    9. sudo apt-get install ia32-libs (Ubuntu 12.04)
    10. sudo apt-get install gcc-4.4 g++-4.4 gcc-4.4-multilib g++-4.4-multilib
    • cd /usr/bin
    • sudo rm –f gcc
    • sudo ln –s gcc-4.4 gcc
    • sudo rm –f g++
    • sudo ln –s g++-4.4 g++
    P.S. 可額外安裝下面package
           sudo apt-get install gnupg flex bison zip
           sudo apt-get install gperf build-essential git-core
           x11proto-core-dev libx11-dev libx11-dev:i386 lib32readline6-dev
           lib32readline6-dev:i386 lib32z1-dev libgl1-mesa-dev libgl1-mesa-glx:i386
           mingw32 tofrodos python-markdown libxml2-utils

    安裝Java
    1. wget --no-cookies --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F" http://download.oracle.com/otn-pub/java/jdk/6u45-b06/jdk-6u45-linux-x64.bin
    2. chmod u+x jdk-6u45-linux-x64.bin
    3. ./jdk-6u45-linux-x64.bin
    4. sudo mv jdk1.6.0_45 /opt
    5. sudo update-alternatives --install "/usr/bin/jar" "jar" "/opt/jdk1.6.0_45/bin/jar" 1
    6. sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.6.0_45/bin/java" 1
    7. sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/jdk1.6.0_45/bin/javac" 1
    8. sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/opt/jdk1.6.0_45/bin/javadoc" 1
    9. sudo update-alternatives --install "/usr/lib/mozilla/plugins/libjavaplugin.so" "mozilla-javaplugin.so" "/opt/jdk1.6.0_45/jre/lib/amd64/libnpjp2.so" 1
    10. sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/opt/jdk1.6.0_45/bin/javaws" 1
    11. sudo update-alternatives --config jar
    12. sudo update-alternatives --config java
    13. sudo update-alternatives --config javac
    14. sudo update-alternatives --config javadoc
    15. export _JAVA_HOME=/opt/jdk1.6.0_45/
    安裝repo
    1. mkdir ~/bin
    2. PATH=~/bin:$PATH
    3. curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    4. chmod a+x ~/bin/repo

    2014年2月6日 星期四

    建立AP Router Image

    1. 先建立compiler環境
      • 使用Linux OS,如Linux Mint
      • 如用32-bits OS直接解壓縮buildroot-gcc463 toolchain至opt底下即可
      • 如使用64-bits OS,需建立64-bits OS toolchain
        • 解壓縮gdb source code
        • sudo apt-get install bison
        • sudo apt-get install flex
        • sudo apt-get install gcc
        • sudo apt-get install g++
        • sudo apt-get install libncurses5-dev
        • sudo apt-get install zlib1g-dev
        • sudo apt-get install texinfo (參考texinfo)
        • make gdb source code
        • 確認/opt下有產生gcc toolchain
      • 安裝mksquash_lzma
        • 進入mksquash_lzma目錄
        • make
        • sudo make install
      • 安裝lzma-4.32.7
        • 進入lzma-4.32.7目錄
        • ./configure
        • make
        • sudo make install
    2. Build Uboot image
      • 進入Uboot目錄
      • make menuconfig
      • 選擇需要的config
      • make
    3. 增加需要的driver,參考driver makefile
    4. Build kernel image
      • 進入source目錄
      • 更改shell為bash
      • make menuconfig
      • 選擇需要的config
      • make dep
      • make

    2014年2月5日 星期三

    undefined reference to `tgoto'



    sudo apt-get install libncurses5-dev

    fatal error: ctype.h: No such file or directory

    Make時發生下面的錯誤:

    make[1]: /opt/buildroot-gcc342/bin/mipsel-linux-uclibc-gcc: Command not found
    make[2]: /opt/buildroot-gcc342/bin/mipsel-linux-uclibc-gcc: Command not found
    make[2]: Entering directory `/home/fae/Projects/MTK/SDK_4200/RT288x_SDK/toolchain/buildroot/toolchain_build_mipsel/uClibc-0.9.28/extra/config'
    make[2]: /opt/buildroot-gcc342/bin/mipsel-linux-uclibc-gcc: Command not found
    gcc -O2 -Wall -I. -c conf.c -o conf.o
    conf.c:6:19: fatal error: ctype.h: No such file or directory
     #include <ctype.h>

    確定是否有安裝gcc與g++
    sudo apt-get install gcc
    sudo apt-get install g++

    移除Linux Mint "bash: /usr/bin/mint-fortune: No such file or directory"訊息


      1. sudo gedit /etc/bash.bashrc
      2. 移除此行"/usr/bin/mint-fortune"

        又換了一套Linux了,Linux Mint

        用了Ubuntu,Debian,Arch Linux,Lubuntu等,
        還是覺得Ubuntu用的最習慣~~~
        可是新版Ubuntu介面真的習慣不了~~~
        最近看到使用趨勢有增加的Linux Mint,就跑來用了。
        使用習慣跟Ubuntu類似,便利性也不錯
        UI是先前類似Windows的UI~~~
        暫時用上了 ^^