[Linux] ARM檔案系統移植記錄
阿新 • • 發佈:2018-11-15
#arm-cotex-A9 M6708 檔案系統移植記錄
本文的主要內容是:記錄在移植檔案系統時所遇到的問題。
##工具
* ubuntu 16.04.2 server i386(開啟ssh、samba功能)
* buildroot-2017.02.3 (藉助buildroot工具可以快速搭建檔案系統)
* Qt-everywhere-opensource-src-5.6.2(此版本為企業長期服務版3年,且該版本不要求使用支援C++11的編譯器)
##過程
-
解壓buildroot-2017.02.3,並進入該目錄。
-
安裝軟體:
- sudo apt-get install libncurses5-dev(make menuconfig需要的包)
- sudo apt-get install texinfo(makeinfo需要的包)
- sudo apt-get install g++
- 其他的根據提示安裝
-
make menuconfig(參考http://www.linuxdiyf.com/linux/22191.html)
- 音訊需要安裝alsa庫,環境變數新增:export ALSA_CONFIG_PATH=/usr/share/alsa/alsa.conf
- 可以用buildroot安裝tslib,環境變數如下(配置按實際情況修改):
- export TSLIB_TSDEVICE=/dev/input/event0
- export TSLIB_TSEVENTTYPE=input
- export TSLIB_CONFFILE=/etc/ts.conf
- export TSLIB_PLUGINDIR=/usr/lib/ts
- export TSLIB_CALIBFILE=/etc/pointercal
- export TSLIB_CONSOLEDEVICE=none
- export TSLIB_FBDEVICE=/dev/fb0
- 其他按實際需要選擇安裝
-
make
- buildroot的輸出目錄在buildroot-2017.02.3/output中,檔案系統打包在image目錄下
-
編譯Qt5.6.2
- 解壓Qt原始碼
- 修改qt-everywhere-opensource-src-5.6.2\qtbase\mkspecs\linux-arm-gnueabi-g++\qmake.conf
- 使用buildroot的交叉編譯鏈/home/cat/workspace/buildroot-2017.02.3/output/host/usr/bin/arm-none-linux-gnueabi-gcc
- PATH="/home/cat/workspace/buildroot-2017.02.3/output/host/bin:/home/cat/workspace/buildroot-2017.02.3/output/host/sbin:/home/cat/workspace/buildroot-2017.02.3/output/host/usr/bin:/home/cat/workspace/buildroot-2017.02.3/output/host/usr/sbin:/home/cat/bin:/home/cat/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin" PKG_CONFIG="/home/cat/workspace/buildroot-2017.02.3/output/host/usr/bin/pkg-config" PKG_CONFIG_LIBDIR="/home/cat/workspace/buildroot-2017.02.3/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/pkgconfig" PKG_CONFIG_SYSROOT_DIR="/home/cat/workspace/buildroot-2017.02.3/output/host/usr/arm-buildroot-linux-gnueabi/sysroot" MAKEFLAGS=" --no-print-directory – -j5" …/qt-everywhere-opensource-src-5.6.2/configure -nomake tests -confirm-license -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /home/cat/workspace/tools/armQt5.6.2 -qt-sql-sqlite -qt-zlib -qt-libpng -qt-libjpeg -nomake tests -nomake examples -nomake tools -no-opengl -alsa -glib -pulseaudio
- PATH="/home/cat/workspace/buildroot-2017.05.2/output/host/bin:/home/cat/workspace/buildroot-2017.05.2/output/host/sbin:/home/cat/workspace/buildroot-2017.05.2/output/host/usr/bin:/home/cat/workspace/buildroot-2017.05.2/output/host/usr/sbin:/home/cat/workspace/buildroot-2017.05.2/output/host/bin:/home/cat/workspace/buildroot-2017.05.2/output/host/sbin:/home/cat/workspace/buildroot-2017.05.2/output/host/usrbin:/home/cat/workspace/buildroot-2017.05.2/output/host/usr/sbin:/home/cat/bin:/home/cat/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/snap/bin"
- PKG_CONFIG="/home/cat/workspace/buildroot-2017.05.2/output/host/usr/bin/pkg-config"
- PKG_CONFIG_LIBDIR="/home/cat/workspace/buildroot-2017.05.2/output/host/usr/arm-buildroot-linux-gnueabi/sysroot/usr/lib/pkgconfig"
- PKG_CONFIG_SYSROOT_DIR="/home/cat/workspace/buildroot-2017.05.2/output/host/usr/arm-buildroot-linux-gnueabi/sysroot"
- …/qt-everywhere-opensource-src-5.9.1/configure -nomake tests -confirm-license -release -opensource -xplatform linux-arm-gnueabi-g++ -prefix /home/cat/workspace/tools/armQt5.9.1 -qt-sqlite -qt-zlib -qt-libpng -qt-libjpeg -nomake tests -nomake examples -nomake tools -no-opengl -alsa -glib -pulseaudio -skip serialbus
- 路徑按實際情況修改
- make -j4
- make install
-
將編譯好的Qt庫(lib資料夾)和外掛(plugins資料夾)複製到檔案系統中。
- 編譯好的Qt的bin目錄下需要新增一個qt.conf檔案,內容如下:
- [Paths]
- Prefix=…
-
新增Qt環境變數
- export QT_QPA_FB_TSLIB=1
- export QT_QPA_GENERIC_PLUGINS=tslib
- export QT_QPA_PLATFORM=LinuxFb:fb=$TSLIB_FBDEVICE
- export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/plugins
- export QT_QPA_FONTDIR=/usr/lib/fonts
- export QML_IMPORT_PATH=/usr/qml
- export QML2_IMPORT_PATH=/usr/qml