2014年9月26日 星期五

Ubuntu恢復Hibernate功能

1. 用指令進入休眠sudo pm-hibernate
2. 恢復休眠選單
    sudo vi /etc/polkit-1/localauthority/50-local.d/
    com.ubuntu.enable-hibernate.pkla


    [Enable Hibernate]
    Identity=unix-user:*

    Action=org.freedesktop.upower.hibernate
    ResultActive=yes

2014年9月25日 星期四

Ubuntu開機自動執行程式

sudo ln -s /opt/program_xxx /etc/init.d/program_xxx
sudo update-rc.d -f program_xxx defaults
or
sudo update-rc.d -f program_xxx defaults 99 1

2014年9月24日 星期三

將Intel Galileo當成WiFi AP使用

1. Galileo已經有包含WiFi driver
    看meta-clanton/meta-clanton-distro/recipes-kernel/linx-firmware/linux-firmware_git.bbappend

2. 在meta-clanton/meta-clanton-distro/recipes-core/images/image-full.bb
    增加hostap-daemon(AP mode)及dhcp-server(DHCP Server)支援

3. 增加iptable
    使用bitbake linux-yocto-clanton -c menuconfig
    選擇
    Networking support --->
         Networking options --->
              Network packet filtering framework (Netfilter) --->
                   Core Netfilter Configuration ---> *
                   IP: Netfilter Configuration ---> *

4. 修改/etc/network/interfaces
    # Wireless interface
    auto wlan0
    iface wlan0 inet static
    address 192.168.1.254

    netmask 255.255.255.0

5. 修改/etc/dhcp/dhcp.conf
    subnet 192,168.1.0 netmask 255.255.255.0{
    range 192.168.1.21 192.168.1.100;

    option routers 192.168.1.254;
    option broadcast-address 192.168.1.255;

    option domain-name-servers 8.8.8.8;
    }

6. 修改/etc/default/dhcp-server
    INTERFACE="wlan0"

7. 修改/etc/hostapd.conf
    interface=wlan0

8. 執行/etc/init.d/networking restart

9. 設定routing
    可先執行iptables -t nat -L看是否可正確執行
    iptables --flush
    iptables --table nat --flush
    iptables --delete-chain
    iptables --table nat --delete-chain
    iptables --table nat --append POSTROUTING --out-interface eth0
    -j MASQUERADE

    iptables --append FORWARD --in-interface wlan0 -j ACCEPT
    echo 1 > /proc/sys/net/ipv4/ip_forward
 

10. 執行/etc/init.d/dhcp-server restart

11. 執行hostapd -d /etc/hostapd.conf &

P.S.
如遇到SSID沒有出現的問題,要確認一下是否wlan0已連至其他AP Router

P.S.
遇到iptables: can't initialize iptables table `nat': Table does not exist
(do you need to insmod?)
問題
iptables: can't initialize iptables table `filter': Table does not exist
(do you need to insmod?)
問題

這是因為CONFIG_NF_NAT或是CONFIG_NF_NAT_IPV4並未添加
IP: Netfilter ConfigurationCore Netfilter Configuration設定不對

Intel Galieo整合WiFi

使用Intel Centrino WiFi
Driver,iwlwifi-*.ucode可於Intel網站下載

1. 將iwlwifi-*.ucode拷貝到Galileo下的/lib/firmware/iwlwifi-*.ucode
2. 執行modprobe iwlwifi
3. 修改/etc/network/interfaces
    # Wireless interface
    auto wlan0
    iface wlan0 inet dhcp

4. 執行/etc/init.d/networking restart

如要連結至AP,可修改/etc/wpa_supplicant.conf
network={
                ssid="SSID"
                scan_ssid=1
                key_mgmt=WPA-PSK
                psk="PASSWORD"
}

2014年9月17日 星期三

Buidl Intel Galileo OS

1. 從Intel網站上下載
    Board_Support_Package_Sources_for_Intel_Quark_v1.0.1.7.7z
2. 解壓縮此檔案至~/Quark
3. 解壓縮grub-legacy...tar.gz、
    meta-clanton...tar.gz、
    Quark_EDKII...tar.gz、quark_linux...tar.gz、
    spi-flash-tools...tar.gz、sysimage...tar.gz


4. 執行./sysimage.../create_symlink.sh
5. 安裝git、gcc、g++、c++、texinfo等Ubuntu包
6. 到meta-clanton目錄
7. 執行setup.sh
8. 執行source poky/oe-init-build-env yocto_build
9. 執行bitbake image-full-galileo
10. Image在meta-clanton/yocto_build/tmp/deploy/images/

P.S.
出現找不到x264_git相關包
更改meta-clanton/meta-oe/meta-oe/recipes-multimedia/x264/x264_git.bb
---SRCREV="1cff........................................................................."
+++#SRCREV="1cff...................................................................."
+++SRCREV="ea0ca51e94323318b95bd8b27b7f9438cdcf4d9e"

P.S.
出現找不到opencv_2.4相關包
更改meta-clanton/meta-oe/meta-oe/recipes-support/opencv/opencv_2.4.3.bb
meta-clanton/meta-oe/meta-oe/recipes-support/opencv/opencv-samples_2.4.3.bb
---SRC_URI = "${SOURCEFORGE_MIRROR}/opencvlibrary/opencv-unix/${PV}/OpenCV-${PV}.tar.bz2
+++#SRC_URI = "${SOURCEFORGE_MIRROR}/opencvlibrary/opencv-unix/${PV}/OpenCV-${PV}.tar.bz2
+++SRC_URI = "ftp://ftp.netbsd.org/pub/pkgsrc/distfiles/OpenCV-${PV}.tar.bz2 \
---SRC_URI = "${SOURCEFORGE_MIRROR}/opencvlibrary/opencv-unix/${PV}/OpenCV-${PV}.tar.bz2
+++#SRC_URI = "${SOURCEFORGE_MIRROR}/opencvlibrary/opencv-unix/${PV}/OpenCV-${PV}.tar.bz2
+++SRC_URI = "ftp://ftp.netbsd.org/pub/pkgsrc/distfiles/OpenCV-${PV}.tar.bz2 \

P.S.
要重建image先
bitbake -c cleanall image-full-galileo
bitbake -c clean image-full-galileo
要重建clanton先
bitbake -c cleanall linux-yocto-clanton

P.S.
menuconfig
bitbake linux-yocto-clanton -c menuconfig

P.S.
Kernel位於meta-clanton/yocto_build/tmp/sysrppts/clanton/usr/src/kernel

P.S.
Build Quark_EDKII產生openssl錯誤
參考Quark_EDKII/CryptoPkg/Library/OppensslLib/Patch-HOWTO.txt

P.S.
載入module
參考/etc/modules-load.quark/galileo.conf

P.S.
自動啟動程式
可修改/etc/profile

參考網址
http://kei-sakaki.jp/2014/04/22/intel-quark-bsp-for-intel-galileo-development-board/
https://www.yoctoproject.org/documentation

2014年8月29日 星期五

Ubuntu安裝virtualbox

安裝ubuntu 12.04 (Precise Pangolin)

1. 增加下面文字至/etc/apt/sources.lst
deb http://download.virtualbox.org/virtualbox/debian precise contrib

2. 增加key
wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add -

3. 安裝
sudo apt-get update
sudo apt-get install virtualbox-4.3

2014年8月6日 星期三

Xubuntu uGet出現failed to connect to aria2錯誤

不要由Ubuntu Software Centre(USC)下載
使用PPA
sudo add-apt-repository ppa:plushuang-tw/uget-stable
sudo apt-get update
sudo apt-get install uget

sudo add-apt-repository ppa:t-tujikawa/ppa
sudo apt-get update
sudo apt-get install aria2

2014年7月14日 星期一

Android連結WiFi

1. wpa_supplicant -Dwext -iwlan0 -C/data/system/wpa_supplicant
    -c/data/misc/wifi/wpa_supplicant.conf
2. wpa_cli -p/data/system/wap_supplicant -iwlan0
    使用下面command設置WiFi
    scan
    scan_results
    add_network
    set_network <network id> <variable> <value>
    enable_network <network id>
    disable_network <network id>

Android查看service狀態



getprop|grep xxx.svc

修改Ubuntu host name

1. 查看hostname
#hostname
2. 更改hostname
#hostname xxxx
3. 更改hosts
#vi /etc/hosts
127.0.0.1       localhost
127.0.1.1       xxxx

2014年7月9日 星期三

Ubuntu使用USB轉RS232裝置

常見的USB轉RS232是PL2303
1. sudo modprobe pl2303
2. 將在/dev底下看到ttyUSBX

2014年5月30日 星期五

menuconfig出現Preparing scripts: functions Your lxdialog utility does not exist錯誤





 氣死了啦!!!
把source code放到另一個環境compiler,
打menuconfig竟然給我出現下面的錯誤 ><
Preparing scripts: functionsYour lxdialog utility does not exist
make: *** [menuconfig] Error 1

在google又搜不到,而且其他環境又沒問題~~~

突然想到,會不會是這個環境的file system問題,導致檔案不全或格式有問題。
果然,這環境竟然給我用NTFS,雖然是想相容windows啦,可是也造成問題了啦!!!
改為ext4,沒問題了,Lucky ^^

2014年5月26日 星期一

WinCE,不用hive-based,如何儲存registry

參考Registry OS Functions
http://msdn.microsoft.com/en-us/library/ms891458.aspx

可以用RegCopyFile
This function saves a copy of the current Windows CE RAM–based registry to a specified file.

以及RegRestoreFile
This function places the operating system in a state in which the registry can be replaced by the supplied file on a warm boot.

Xubuntu以Fcitx取代Ubuntu

因為Xubuntu使用的ibus,是用垂直的選字視窗,
可是如果輸入視窗的位置在下面時,根本就看不到選字視窗 ><
將ibus修改為水平視窗顯示,又沒作用,一樣是垂直的。
另外也不能讓輸入法預設是英文,每次都要由中文切換回英文><
所以改用fcitx

sudo add-apt-repository ppa:fcitx-team/nightly
sudo apt-get update

sudo apt-get install fcitx
sudo apt-get install fcitx-chewing(安裝酷音輸入法)

將預設輸入法設為fcitx

2014年4月25日 星期五

Xubuntu更新至14.04發生symbol 'grub_term_highlight_color' not found


我也只是更新OS而已就,天呀 ><

更新完重新開機,掛點Orz





根據
https://help.ubuntu.com/community/Grub2/Installing#via_ChRoot
參考via ChRoot
我的是sda,系統安裝在sda0
  1. sudo mount /dev/sda0 /mnt
  2. for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
  3. sudo chroot /mnt
  4. grub-install --recheck /dev/sda
  5. update-grub
  6. CTRL-D離開chroot
  7. sudo reboot
  8. 從硬碟順利開機

2014年4月23日 星期三

WinCE disable DHCP fail window

DHCP無法使用時,WinCE會顯示"A DHCP Server could not be contacted",
可透過下面registry進行設定
[HKEY_LOCAL_MACHINE\Comm\Tcpip\Parms]
   DisableCachedLeaseDialog: REG_DWORD

[HKEY_LOCAL_MACHINE\Comm\Tcpip\Parms ]
   AutoCfg : REG_DWORD

參考下面網址
http://msdn.microsoft.com/en-us/library/ee494881.aspx
http://msdn.microsoft.com/en-us/library/aa922356.aspx

2014年4月14日 星期一

Linux支援exFAT

安裝exfat-fuseexfat-utils
sudo add-apt-repository ppa:relan/exfat
sudo apt-get update
sudo apt-get install exfat-fuse exfat-utils
  1. 格式化,mkfs.exfat /dev/sd??
  2. 建立名稱,exfatlabel /dev/sd?? label_name

2014年4月8日 星期二

Linux常用軟體

文書:
evince - PDF viewer
gedit - 類似UltraEdit
Mousepad - 類似Windows記事本(輕量)
Leafpad - 類似Windows記事本(輕量)
LibreOffice - 類似Windows Office軟體
OnlyOffice - 類似Windows Office軟體
Evolution - 類似Office Outlook軟體
Thunderbird - 類似Office Outlook軟體
GHex - Hex編輯軟體



繪圖:
Gimp - Linux上的Photoshop
Gnome-Paint - Linux上的小畫家
Pinta-Linux上的小畫家
gthumb - 照片瀏覽軟體
shotwell - 照片瀏覽軟體
gpicview - 圖片瀏覽軟體(輕量)
ristretto - 圖片瀏覽軟體(輕量)

多媒體:
Audacity - 聲音編輯軟體
Avidemux - 影片編輯軟體
OpenShot - 影片編輯軟體
Kdenlive - 影片編輯軟體
WinFF - 轉檔軟體
VLC - 強大的播放器
lxmusic - 音樂播放器(輕量)
audacious - 音樂管理軟體
gnome-media-player - 影片播放器(輕量)
xfburn - 燒錄軟體(輕量)
guvcview - Webcam軟體
xfce4-Screenshooter - 抓取桌面軟體

網路:
Chrome - 瀏覽器(豐富)
Firefox - 瀏覽器(豐富)
Midori - 瀏覽器(輕量)
Filezilla - 同時有Windows及Linux版本的FTP軟體
gFTP - Linux FTP軟體
Skype - 擁有各平台支援的通訊軟體
Dropbox - 擁有各平台支援的網路硬碟
Transmission - BT軟體
uGet - 下載軟體,支援BT
DavMail - 支援POP3、IMAP、Exchange收發信件

安裝Chrome
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
sudo apt-get update
sudo apt-get install google-chrome-stable

安裝Firefox
sudo add-apt-repository ppa:mozillateam/firefox-next
sudo apt-get update
sudo apt-get install firefox

安裝Filezilla
sudo add-apt-repository ppa:n-muench/programs-ppa
sudo apt-get update
sudo apt-get install filezilla

安裝Pinta
sudo add-apt-repository ppa:pinta-maintainers/pinta-stable
sudo apt-get update
sudo apt-get install pinta

安裝Dropbox
cd ~ && wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
~/.dropbox-dist/dropboxd

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FC918B335044912E
sudo add-apt-repository "deb http://linux.dropbox.com/ubuntu precise main"
sudo apt-get update
sudo apt-get install dropbox 

安裝uGetAria2
sudo add-apt-repository ppa:plushuang-tw/uget-stable
sudo apt-get update
sudo apt-get install uget

sudo add-apt-repository ppa:t-tujikawa/ppa
sudo apt-get update
sudo apt-get install aria2

安裝nautilus plug-ins
sudo apt-get install nautilus-dropbox - 透由檔案總管管理Dropbox

sudo apt-get install nautilus-open-terminal - 右鍵開啟命令列視窗
sudo apt-get install nautilus-compare - 比較軟體

sudo apt-add-repository ppa:nae-team/ppa
sudo apt-get update
sudo apt-get install nautilus-open-as-root - 使用root權限開啟

2014年3月25日 星期二

Linux使用Serial Port

  • dmesg |grep tty   // 確認serial使用狀況
  • setserial -g /dev/ttyS0
  • getty
  • minicom

2014年3月20日 星期四

Android Intel CedarTrail整合MTK MT7610U USB WiFi Dongle

1. 首先拿到WiFi driver,看一下driver的Makefile
  • 看來這driver並非Kernel driver,可以直接丟到driver下並透由menuconfig選擇。
  • 這driver是可以直接在Linux PC環境下編譯的。
P.S. 因為改成Kernel driver很麻煩,所以改了一下Android.mk的描述,儘量不改driver。

2. 將driver放到Kernel底下
  • 如果直接編譯driver,會出現沒有.config的設定。
  • 也非Kernel driver所用的makefile,無法跟著Kernel一起編譯。

3. 修改Kernel底下的Android.mk,增加WiFi driver路徑描述
    $(mk_kernel) oldnoconfig
    $(mk_kernel) $(KERNEL_TARGET) $(if $(MOD_ENABLED),modules)
    $(hide) $(ACP) -fp $(BUILT_KERNEL_TARGET) $@
    $(if $(FIRMWARE_ENABLED),$(mk_kernel) ... ... ...
    $(mk_kernel) -C XXXu
    cp $(CURDIR)/kernel/XXXu/MODULE/os/linux/XXXu_sta.ko     
    $(KBUILD_OUTPUT)/drivers/net/
    cp $(CURDIR)/kernel/XXXu/NETIF/os/linux/XXXu_sta_net.ko
    $(KBUILD_OUTPUT)/drivers/net/
    cp $(CURDIR)/kernel/XXXu/UTIL/os/linux/XXXu_sta_util.ko
    $(KBUILD_OUTPUT)/drivers/net/

  • 改完後,在Kernel編譯完後,會自動編譯WiFi driver。
  • 編譯完後會將WiFi driver拷貝到output driver路徑下。

4. 將所有的drivers拷貝到Platform目錄下

5. 在Platform/Platform.mk修改mk檔,將driver及wpa_supplicant.conf包進image
    PRODUCT_COPY_FILES += \
    $(LOCAL_PATH)/XXXu_sta.ko:system/XXXu_sta.ko \
    $(LOCAL_PATH)/XXXu_sta_util.ko:system/XXXu_sta_util.ko \
    $(LOCAL_PATH)/XXXu_sta_net.ko:system/XXXu_sta_net.ko \
    $(LOCAL_PATH)/XXXSTA.dat:system/XXXSTA.dat \
    $(LOCAL_PATH)/wpa_supplicant.conf:data/wpa_supplicant.conf \


6. wpa_supplicant.conf寫法如下
    update_config=1
    ctrl_interface=DIR=/data/system/wpa_supplicant GROUP=wifi
    eapol_version=1
    ap_scan=1
    fast_reauth=1


7. 在BoardConfig.mk修改WiFi設定如下
    # This enables the wpa wireless driver
    #BOARD_WPA_SUPPLICANT_DRIVER := NL80211
    BOARD_WPA_SUPPLICANT_DRIVER := WEXT
    #BOARD_WPA_SUPPLICANT_PRIVATE_LIB ?= private_lib_driver_cmd
    WPA_SUPPLICANT_VERSION := VER_0_5_X

P.S. Driver是搭配WPA_SUPPLICANT VER_0_5_X版本

8. 在platform_defconfig設定相關所需要用到的config,如wext

9. 在init.rc載入driver module
    insmod system/XXXu_sta_util.ko
    insmod system/XXXu_sta.ko
    insmod system/XXXu_sta_net.ko


    mkdir /data/misc 01771 system misc
    # give system access to wpa_supplicant.conf for backup and restore
    mkdir /data/misc/wifi 0770 wifi wifi
    mkdir /data/misc/wifi/sockets 0770 wifi wifi
    mkdir /data/system 0771 system system
    mkdir /data/system/wpa_supplicant 0771 wifi wifi
    chmod 0771 /data/system/wpa_supplicant
    chown wifi wifi /data/misc/wifi/wpa_supplicant.conf   
    chmod 0660 /data/misc/wifi/wpa_supplicant.conf
    chown wifi wifi /data/wpa_supplicant.conf   
    chmod 0660 /data/wpa_supplicant.conf

10. 因為WiFi driver是走libhardware_legacy架構,wifi.c需要做對應修改
  • 修正相關檔案路徑
static const char SUPP_CONFIG_FILE[]    = "/data/wpa_supplicant.conf";
  • 因為已在init.rc載入driver,所以直接return 1
int is_wifi_driver_loaded() {
... ... ...
... ... ...
... ... ...
#ifdef WIFI_DRIVER_MODULE_PATH
... ... ...
... ... ...
... ... ...
#else
    return 1;
#endif

}
  • 已經定義了ctrl_interface=,所以code裡拿掉
int update_ctrl_interface(const char *config_file) {
... ... ...
... ... ...
... ... ...

    if (!strcmp(config_file, SUPP_CONFIG_FILE)) {
        property_get("wifi.interface", ifc, WIFI_TEST_INTERFACE);
    } else {
        strcpy(ifc, CONTROL_IFACE_PATH);
    }
#if 0
    if ((sptr = strstr(pbuf, "ctrl_interface="))) {
        char *iptr = sptr + strlen("ctrl_interface=");
        int ilen = 0;
        int mlen = strlen(ifc);
        int nwrite;
        if (strncmp(ifc, iptr, mlen) != 0) {
            LOGE("ctrl_interface != %s", ifc);
            while (((ilen + (iptr - pbuf)) < nread) && (iptr[ilen] != '\n'))
                ilen++;
            mlen = ((ilen >= mlen) ? ilen : mlen) + 1;
            memmove(iptr + mlen, iptr + ilen + 1, nread - (iptr + ilen + 1 - pbuf));
            memset(iptr, '\n', mlen);
            memcpy(iptr, ifc, strlen(ifc));
            destfd = open(config_file, O_RDWR, 0660);
            if (destfd < 0) {
                LOGE("Cannot update \"%s\": %s", config_file, strerror(errno));
                free(pbuf);
                return -1;
            }
            write(destfd, pbuf, nread + mlen - ilen -1);
            close(destfd);
        }
    }
#endif

    free(pbuf);
    return 0;
}

11. 利用dmesg、logcat、netcfg、wpa_supplicant及wpa_cli觀看並除錯

12. WiFi正常運作了

P.S. 如果在Android看不到WiFi選項,請做下面的步驟
  • 在裝置的/system/etc/permissions中會列出裝置支援的設備
  • 相關設備支援檔案放在本機的frameworks/base/data/etc
  • 要支援WiFi,
將本機frameworks/base/data/etc下的android.hardware.wifi.xml
放置到裝置/system/etc/permissions

2014年3月9日 星期日

Linux各版本使用心得

Ubuntu家族:
Ubuntu-
很方便的PC OS,純粹是習慣的問題,Unity介面真的是讓人找不到軟體,
搜尋軟體也會出現太多太雜的結果,切換視窗也沒那麼直覺,這真的是使用習慣問題

就像Windows一樣,Linux的使用介面也朝適合觸碰螢幕的方向演進

Xubuntu-
較Ubuntu輕量,介面類似Windows XP,有修改Menu的介面,很適合新手
就是預設的檔案總管搜尋上不像Ubuntu那麼直覺,且常常會有莫名其妙的報錯,不影響運作

lubuntu-
很輕量,在小筆電也跑的很順,但是介面與設定的功能太簡略,使用上就沒那麼方便
不過很適合資源少的小筆電

Kubuntu-
KDE介面,很華麗,而且有很多好用的軟體,尤其是照片管理軟體的功能超強,還可以直接在地圖上顯示拍攝照片的位置,但是KDE介面太過複雜,設定也太過繁複,讓人眼花撩亂,
個人還是喜歡簡單的介面,Kubuntu有很嚴重的問題,系統常常當機且鎖定後就回不來了
實在沒時間去找問題點

Linux Mint:
Cinnamon-
這介面很像Windows XP,很適合新手使用,而且整個設定上很便利,尤其是軟體中心比Ubuntu更便利好用,只是ibus中文輸入法在某些情況選字的視窗會超出螢幕無法選字,gcin沒有問題,但有些情況輸入中文並不在輸入的窗格上,而是在另一輸入視窗

Xfce-
就如Cinnamon一樣好用,比較輕量,一樣有中文輸入法的問題搜尋上比較沒那麼直覺
Menu沒有設定介面可自訂

Fedora:
堅持用自由軟體的OS,網站將理念呈現的很清楚,但是因為已經習慣Debian系列了,所以用起來比較不習慣,不過是一個很重要的發行版本

openSUSE:
用openSUSE就是要用KDE,不知道那來的念頭,第一眼看到很美,整個介面很美,功能也很強大,KDE的軟體功能也很強大,不過真的太複雜,個人一直用不習慣,不過真的很美,習慣用KDE介面的話很合適使用

Arch Linux:
可以製造自己的Linux,不過用久了會發現都手動真的太累了

Debian:
很簡潔,沒有太多多餘的東西,不過發行版只用自由軟體,安裝時有些驅動沒有需手動安裝,有些設定也需要手動設定,提供新的Gnome介面,也提供傳統的Gnome Classic介面,有用Ubuntu的經驗後,來用Debian也不錯啦

來看看Linux發行版的排名 DistroWatch.com,網站上第一名是Linux Mint
一個可以讓你參考,如何選擇發行版的網站Linux Distribution Chooser

2014年3月8日 星期六

UNetbootin顯示缺少syslinux

查看add/remove software已經安裝了syslinux
原來缺少extlinux,安裝就解決了

Debian沒辦法使用fdisk

因為Debian使用gnu-fdisk取代傳統的fdisk
在Add/Remove裡搜尋安裝gnu-fdisk
安裝完後就可以使用fdisk了

2014年3月5日 星期三

使用Virtual Machine Manager與KVM安裝Windows 7

因為電腦等級不夠,virtualbox安裝Windows 7實在是跑太慢了,主機與virtualbox都慢 ><
但因為office與ie的關係又一定要執行
Windows 7~~~
一切都是因為公司文件跟網路銀行與ATM都不能在Linux下用呀 ><
但Android開發又一定要Linux,又只配一台NB,又等級不高,搞死人呀!!!

換上KVM,雖然也是慢,
但是比virtualbox順多了
文字管理很麻煩,透過Virtual Machine Manager來管理方便多了
  1. 在軟體中心搜尋virt-manager安裝virt-manager (Virtual Machine Manager)
    • 啟動後會自動安裝KVM套件
  2. 確認電腦是否可支援KVM
    • 執行egrep -c '(vmx|svm)' /proc/cpuinfo
    • 假設結果是0,代表doesn't support hardware virtualization
    • 假設結果大於等於1,表示有支援,記得確認BIOS是否有將這功能打開
    • 執行kvm-ok,確認是否能完整支援
  3. 接下來的操作就跟virtualbox很像,記得將virt type設為KVM
  4. 成功跑啟Windows 7囉

使用Virtual Machine Manager安裝Windows時出現0x0000005d錯誤

這錯誤還找不出原因
但將Virt type從qemu換成kvm就沒問題了

安裝Windows出現0x80300001錯誤

這是一個很瞎的錯誤
因為要安裝額外的driver將Windows光碟退出,放進driver光碟,
繼續安裝Windows時出現的錯誤 ><

只要將Windows安裝光碟放回去即可~~~
=.= 無言,這是叫誰猜得到呀 ... ...

安裝Windows時出現0x80070570錯誤

0x80070570:檔案或目錄損毀且無法讀取

果然ISO檔有問題
拷貝後雖然檔案大小正確但似乎檔案有問題
重新拷一個就可以順利安裝了

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~~~
        暫時用上了 ^^

        2014年1月31日 星期五

        Ubuntu使用RDP

        安裝xrdp
        sudo apt-get install xrdp

        xrdp需要vnc server,安裝tightvncserver
        sudo apt-get install tightvncserver

        2014年1月29日 星期三

        Android使用adb工具更改唯讀目錄權限


        存取/system,顯示為read only
        利用adb工具重新mount為R/W

        adb shell mount -o remount rw /system

        讓Android支援某一設備


        在裝置的/system/etc/permissions中會列出裝置支援的設備

        相關設備支援檔案放在本機的frameworks/base/data/etc

        例如想要支援WiFi,
        將本機frameworks/base/data/etc下的android.hardware.wifi.xml
        放置到裝置/system/etc/permissions
        即可支援WiFi

        觀看與設定Android Native Service



        getprop|grep init

        setprop

        2014年1月23日 星期四

        使用wpa_supplicant

        wpa_supplicant -Dwext -iwlan0 -C/data/system/wpa_supplicant -c /data/misc/wifi/wpa_supplicant.conf -d
        wpa_cli -p/data/system/wpa_supplicant -iwlan0

        wpa_cli list_network
        wpa_cli add_network
        wpa_cli remove_network
        wpa_cli scan
        wpa_cli scan_relults
        help

        Example:
        WPA/WPA2 TKIP/AES

        wpa_cli -iwlan0 add_network 1
        wpa_cli -iwlan0 set_network 1 ssid '"SSID"'
        wpa_cli -iwlan0 set_network 1 key_mgmt WPA-PSK
        wpa_cli -iwlan0 set_network 1 psk /"PASSWORD"'
        wpa_cli -iwlan0 set_network 1 pairwise CCMP TKIP
        wpa_cli -iwlan0 set_network 1 group CCMP TKIP
        wpa_cli -iwlan0 set_network 1 proto WPA RSN
        wpa_cli -iwlan0 enable_network 1

        將檔案包進Android image內


        device/"vendor"/"platfrom"下有個"platform".mk
        裡面會定義file copy
        可新增自己的檔案進去

        PRODUCT_COPY_FILES += \
           ...
           ...
           ...

        透由ethernet使用adb

        因為x86平台並無USB client or OTG不能使用USB adb
        改用ethernet

        設定好PC IP與device IP,並確認可以互ping

        adb connect device_IP
        連上後可使用
        adb push <local file> <remote file>
        adb shell

        切斷連線
        adb disconnect device_IP

        2014年1月14日 星期二

        安裝LILO至MBR

        安裝指令  /sbin/lilo
        解除安裝  /sbin/lilo -u
        設定檔      /etc/lilo.conf  

        安裝Grub至MBR

        指令 grub-install [--root-directory=DIR] INSTALL_DEVICE
        設定檔 /boot/grub/menu.lst

        2014年1月10日 星期五

        Windows網路設定

        刪除設定檔 netsh wlan delete profile name="ProfileName"
        顯示電腦上的所有無線設定檔 netsh wlan show profiles
        顯示安全性金鑰 netsh wlan show profile name=“ProfileName” key=clear
        在優先順序清單中將網路上移 連線至新網路並選擇自動連線時,會將該網路置於清單頂端
        停止自動連線至範圍內的網路 點選或按一下網路清單中的網路,然後按一下中斷連線
        停止自動連線至範圍外的網路 netsh wlan set profileparameter name=”ProfileName” connectionmode=manual

        2014年1月9日 星期四

        Ubuntu安裝32bit package

        dpkg --add-architecture i386
        apt-get update

        可安裝i386 package
        apt-get install libc6:i386
        apt-get install libncurses5:i386
        apt-get install libstdc++6:i386
        apt-get install zlib1g:i386

        Ubuntu搜尋Package

        apt-cache search XXX

        2014年1月3日 星期五

        Ubuntu使用FTP

        1. ftp ftp_address
        2. 輸入username與password
        3. pwd顯示當前路徑
        4. ls列出ftp目錄
        5. cd改變ftp目錄
        6. lpwd顯示local路徑
        7. lls列出當前目錄
        8. lcd改變local目錄
        9. get下載
        10. put上傳
        11. open打開ftp site
        12. bye離開ftp
        1. ncftp -u username -p password ftp address
        2. pwd顯示當前路徑 
        3. ls列出ftp目錄
        4. cd改變ftp目錄
        5. lpwd顯示local路徑
        6. lls列出local目錄  
        7. lcd改變local目錄
        8. get下載
        9. put上傳
        10. open打開ftp site
        11. bye離開ftp
         使用graphic ftp: gftp或是FileZilla

        如何寫bash檔案

        1. 建立filename.sh檔案
        2. 第一行放#!/bin/bash
        3. 接下來放相關指令
        4. 令用sh filename.sh執行
        5. chmod +x filename.sh, 讓bash file可直接執行

        Ubuntu更改檔案擁有者

        chown username filename

        移除Gnome Panel Application Launcher

        Press "Alt" and then right click the application launcher on top menu bar.
        Choose "Remove From Panel" from pop-up menu.

        Ubuntu安裝Microsoft字型

        下載安裝
        Download Page for ttf-mscorefonts-installer_3.4+nmu1_all.deb