1. 程式人生 > >[Linux] ARM檔案系統移植記錄

[Linux] ARM檔案系統移植記錄

#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的編譯器)

##過程

  1. 解壓buildroot-2017.02.3,並進入該目錄。

  2. 安裝軟體:

    • sudo apt-get install libncurses5-dev(make menuconfig需要的包)
    • sudo apt-get install texinfo(makeinfo需要的包)
    • sudo apt-get install g++
    • 其他的根據提示安裝
  3. 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
    • 其他按實際需要選擇安裝
  4. make

    • buildroot的輸出目錄在buildroot-2017.02.3/output中,檔案系統打包在image目錄下
  5. 編譯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
  6. 將編譯好的Qt庫(lib資料夾)和外掛(plugins資料夾)複製到檔案系統中。

    • 編譯好的Qt的bin目錄下需要新增一個qt.conf檔案,內容如下:
    • [Paths]
    • Prefix=…
  7. 新增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