2017年10月12日 星期四

【Linux cmd】在Ubuntu 16.04 查詢memory Frequency & 安裝類似cpu-z 的軟體

在Ubuntu底下想要查看現在的Memory Size,或Memory Frequency可以用下面的指令來達成:

#sudo lshw -short -C memory

下圖是結果,會秀出容量&頻率 ==> 4GB DDR3 1333MHz








另外還有一個指令也可以達到同樣的目的

#sudo dmidecode -t memory

下圖是結果,看你的設備有幾個Memory的插槽,他都會秀出來,我的電腦共有4個插槽,記憶體是插在第二個插槽,4GB DDR3 1333MHz (圖片太長,只截取兩個插槽資訊)




















======================================================
另外還有一個類似CPU-Z的圖形化介面工具,安裝方式如下:

#sudo add-apt-repository ppa:i-nex-development-team/daily
#sudo apt-get update
#sudo apt-get install i-nex

安裝完成之後,可以照下圖方式來開啟他,如下圖所示名字為 i-nex的工具:











開啟後的介面如下圖:



2017年10月6日 星期五

用 wxWidgets 的GUI Library 搭配CodeBlock 來開發PC端應用程式

今天這篇文章要使用 wxWidget (3.0.3) 搭配 CodeBlock(16.01) 來開發一個簡單的視窗介面應用程式

首先我們會分兩個階段,第一階段我們需要先去編譯wxWidgets這個GUI Library,我們將會使用mingw-w64(GCC)來作為我們的Compiler.

第二階段我們會去用CodeBlock開一個wxWidgets的專案,並且簡單的編譯一個視窗應用程式

========================================================================
首先我們需要去下面的載點下載需要的軟體:
1. mingw-w64 ==>  https://sourceforge.net/projects/mingw-w64/
2. wxWidget (3.0.3) ==> https://www.wxwidgets.org/downloads/
3. CodeBlock(16.01) ==> http://www.codeblocks.org/downloads/binaries
========================================================================

下載完成後,我們先安裝mingw-w64,這是一個自動安裝的檔案,只需照著步驟下一步就可以了,作者是把他安裝在 D:\mingw-w64 底下。

接著我們要把wxWidget解壓縮開,作者把wxWidgets解壓縮在D:\Wxwidget\wxWidgets-3.0.3 底下

先完成上面兩個步驟之後,接著去設定一下Windows的環境變數,讓我們的GCC 可以直接呼叫,步驟如下:















在最後面加上 ===>  ;D:\mingw-w64\i686-7.1.0-posix-dwarf-rt_v5-rev2\mingw32\bin
這樣就完成編譯器的設定


接著打開windows的命令提示字元,並且切換到wxWidget的build\msw路徑底下,













依序輸入下面指令:
1. mingw32-make -f makefile.gcc clean
2. mingw32-make -f makefile.gcc BUILD=debug SHARE=0 MONOLITHIC=1 UNICODE=1
3. mingw32-make -f makefile.gcc BUILD=release SHARE=0 MONOLITHIC=1 UNICODE=1

當整個編譯完成後,我們已經把wxWidget Library成功編譯成Codeblock可以使用的了~


========================================================================第二步驟,請先安裝CodeBlock,安裝完成後請開啟CodeBlock,選擇Create a new project,並且依照下面步驟來建立專案


1.請選擇wxWidgets project來作開發,接著按右邊的"Go"按鈕進行下一步驟
















2.這一頁面會說明此版本支援wxWidgets 2.6.x/2.8.x/3.0.x,我們使用3.0.3版也在此支援範圍之內,若是你想要使用的wxWidgets不在此CodeBlock範圍,你可能就要找其他版本的CodeBlock了。這邊我們直接選"Next"按鈕


















3.選擇我們使用的3.0.x版本,按下一步


















4.接著輸入我們要建立的專案名,我這邊命名為"wxTest",接著進行下一步驟


















5.這邊我們隨便輸入一個作者名即可,進行下一步


















6.這個頁面Preferred GUI Builder請選擇wxSmith,另外Application Type選擇Frame Base.


















7.接著我們要選擇wxWidgets3.0.3所在的位置,也就是第一步驟編譯好的wxWidgets位置,所以我們這邊填入D:\Wxwidgets\wxWidgets-3.0.3


















8.這一步驟請確定Compiler是選擇GNU GCC Compiler,其他應該預設就沒有問題了


















9.這一步驟請按照圖片裡的選項勾選,接著按下一步,Project初始的Wizzard應該就結束了,此時你就會看到有IDE介面出現,可以讓你設計UI


















10. 在作編譯之前,我們先到Settings => Compiler 確定一下設定是否正確,檢查Toolchain executables這個部分,請確認這些編譯器的名子與位置都是正確的,要確認你的Compiler's install directory都有這些執行檔可用。
















11.我們這邊簡單的拉兩個TextEdit,一個Button,並且進行編譯,可以看到編譯完成後就會跳出右邊的小視窗,簡單的視窗程式就大功告成了。


2017年9月15日 星期五

分別在兩台Ubuntu電腦執行同一支shell script,有一台卻發生 Syntax error: "(" unexpected

今天在移植整個編譯Code的環境,當整個環境都移植完成後,準備試著編譯一次相同的Code,結果遇到Shell Script的error訊息,因此朝著新電腦的環境還尋找問題,錯誤大概描述如下

Shell script內容:
===============================================
#!/bin/sh
AAA=(a b c)
for i in ${AAA[@]}; do
        echo $i
done

錯誤訊息為:
line 2,   
Syntax error: "(" unexpected





這種宣告陣列變數的寫法,並不是在所有的shell底下都通用
所以一開始我先用底下指令確認安裝的shell種類,與版本
# echo $SHELL
# echo $BASH_VERSION

結果發現兩台電腦是相同的


後來查資料原來ubuntu預設的shell是使用dash而非bash,用以下指令查看了一下出現錯誤的電腦:
# ls -al /bin/sh




果然是使用dash所造成的

最後解決方法,就是手動更改/bin/sh,把他改為link到bash就可以了









2017年9月8日 星期五

解決 ssh 輸入root帳號與密碼都無法登錄的問題

最近在Device上要使用ssh登入,看了一下Device上sshd都跑在背景了,我使用putty來做ssh連線

連上線之後,要輸入帳號密碼,ssh的帳號密碼應該會跟你透過UART登入使用同樣的帳號密碼,也就是說要改密碼直接使用passwd就行

但是我使用putty透過ssh連上Device後卻一直登入不了(Access Denied)








後來找到解法,發生這種問題,必須先去修改Device上sshd的config檔,位於/etc/ssh/sshd_config,請把位於Authentication底下的PermitRootLogin 後面的值改為 yes












然後重啟Device上的sshd










完成以上步驟之後,就可以順利透過ssh登入了!!!

2017年8月28日 星期一

【Linux cmd】關閉ubuntu防火牆的指令-ufw

ufw 是一個 iptables 的前端設定程式,其名稱為 Uncomplicated Firewall 的簡稱,意謂著「不複雜的防火牆」設定,它的製作目的在於讓一般人很容易的設定 iptables。

要強調的是 ufw 只是一個簡單的 iptables 前端設定工具,無法完全取代 iptables 的所有設定,若想做更複雜的 firewall 設定,還是得回到 iptables 層面。


啟用防火牆
$ sudo ufw enable
Firewall is active and enabled on system startup

停用防火牆:
$ sudo ufw disable
Firewall stopped and disabled on system startup

要確認 ufw 已經啟用,可以看一下 ufw 的 status:

已啟用:
$ sudo ufw status
Status: active

未啟用:
$ sudo ufw status
Status: inactive

2017年8月24日 星期四

在Ubuntu 14.04 無法apt-get install iperf3 的解決方法

首先加入 iperf3 需要的repository
sudo add-apt-repository "ppa:patrickdk/general-lucid"

接著更新你的apt-get的table
sudo apt-get update

最後安裝
sudo apt-get install iperf


*若是找不到命令add-apt-repository 請先使用下面方法安裝,通常安裝第一項就可以,若是不行再依序安裝二、三~
sudo apt-get install software-properties-common
and/or
sudo apt-get install python3-software-properties
and/or
sudo apt-get install python-software-properties

2017年8月17日 星期四

Windows Defender 無法開啟的問題

若是點了控制台的 Windows Defender 出現下面的訊息












可以試試以下步驟:

用管理權限去跑 regedit , 改機碼請小心

機碼位置位於:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\DisableAntiSpyware

這個值若為1   試試改為 0