2019年10月10日 星期四

[Qt] qtchooser 基本操作

qtchooser 是一套可以讓使用者選定 qt qmake 版本的 package

開發環境若有多套 Qt 同時使用中,可以快速在不同版本間切換

操作指令

1. 顯示所有支援的 qt 版本
qtchooser -list-versions

2. 查看當前支援的版本
qtchooser -print-env

輸出結果:
QT_SELECT="default"
QTTOOLDIR="/usr/lib/x86_64-linux-gnu/qt4/bin"
QTLIBDIR="/usr/lib/x86_64-linux-gnu"

3. 手動新增版本
qtchooser -install ${list 上的顯示名稱} ${qmake路徑}

例如:
qtchooser -install qt5.9.4 ~/Qt/5.9.4/gcc_64/bin/qmake

4. 指定 qtchooser 選定的版本
export QT_SELECT=qt5.9.4

# 透過 qtchooser -print-env 來確認是否有更新成功

指令 qmake 就會是對應的 qt version 的

2019年9月24日 星期二

[Valgrind 學習筆記] 初探 Valgrind

在系統上安裝 Valgrid

sudo apt-get install valgrind

執行 Valgrid

G_SLICE=always-malloc G_DEBUG=gc-friendly  valgrind -v --tool=memcheck --leak-check=full --num-callers=40 --log-file=valgrind.log $(which <program>) <arguments>


執行過程中,log 會被導出到 valgrid.log

後續再研究此 log 的內容即可


Reference:
1. Valgrind
2. Valgrind man page
3. 应用 Valgrind 发现 Linux 程序的内存问题
4. Running GLib Applications

2019年3月6日 星期三

[Linux 學習筆記] 透過 command line 調整 CPU 頻率


1. 查看當前 CPU 0 的使用頻率與最大、最小頻率
# cd /sys/devices/system/cpu/cpu0/cpufreq
# cat cpuinfo_cur_freq
# cat cpuinfo_max_freq
# cat cpuinfo_min_freq


2. 查看 CPU 0 可用頻率
# cd /sys/devices/system/cpu/cpu0/cpufreq
# cat scaling_available_frequencies

==可能顯示結果==
396000 792000 996000


3. 查看 CPU 0 可用的 CPU policy
# cd /sys/devices/system/cpu/cpu0/cpufreq
# cat scaling_available_governors

==可能顯示結果==
interactive conservative ondemand userspace powersave performance



查看所有 CPU 當前 policy
# cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

==可能顯示結果==
powersave
powersave
powersave
powersave


4. 更改所有 CPU 當前 mode (假設有 4 顆 CPU)
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# echo performance > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
# echo performance > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
# echo performance > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
此時可查看 current, max, min 頻率來確認是否有更新

5. 手動更改頻率
# echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
# echo 792000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq


2019年2月26日 星期二

[Linux 學習筆記] 如何找到系統上所有可用 module

How to find all available modules on system


  1. Find those loaded module
    1. Use command "lsmod"
  2. Find a specific module name and its usage
    1. Check this website: LKDDb: Linux Kernel Driver DataBase
  3. Find all modules which can be used
    1. cd /lib/modules/
    2. "uname -r"
      1. To check Linux kernel release
    3. cd 4.9.11-myimx6-g7c9eb82-dirty/
      1. Pick this kernel to check all available modules
    4. find . -name *.ko
      1. To list all available modules
  4. Reference

2019年2月25日 星期一

[Linux 學習筆記] 停用指定多核心

現今機器架構常常會使用多核心來提升效能

以我的機器為例,開啟 Linux ,透過 nproc 指令可以查詢機器上有幾個核心,顯示為 4,表示 4 核心。

再使用 htop 可以觀察當前各個核心的使用數據


有時測試上,需要在較嚴苛的環境下執行,可以透過以下指令把指定核心停用

1. 查看當前機器核心名稱

ls /sys/devices/system/cpu/


2. 停用第三、第四個核心

echo 0 > /sys/devices/system/cpu/cpu2/online
echo 0 > /sys/devices/system/cpu/cpu3/online







3. 查看核心數

nproc


4. 重新啟用第三、第四個核心

echo 1 > /sys/devices/system/cpu/cpu2/online
echo 1 > /sys/devices/system/cpu/cpu3/online 

2019年1月19日 星期六

[cmake 學習筆記] 如何設定 GDB debug flag (-g)

方法一: 在 cmake 指令下增加參數


cmake -DCMAKE_BUILD_TYPE=Debug <路徑與其他參數>



cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo <路徑與其他參數>


方法二: 修改 CMakeLists.txt


set(CMAKE_BUILD_TYPE Debug)



set(CMAKE_BUILD_TYPE RelWithDebInfo)


--
build type 為 Debug 會產生具有 debug symbols 與未最佳化的 code
build type 為 RelWithDebInfo 會產生具有 debug symbols 與最佳化的 code