BlueZ 的移植與編譯_步驟說明

[1] 整個 BlueZ 的移植過程,可以歸納成以下幾點:
 a. BlueZ 的移植是相當麻煩的。
 b. 一個完整的 BlueZ 移植需要安裝許多 library,而且 library 之間有相互關係。
     也就是有一定的安裝順序。
 c. 順序步驟不可以錯誤,一旦錯誤就會落入「安裝->錯誤 -> 檢視 -> 找資料 -> 
     重安裝 -> 錯誤-> ...」的多次的循環裡面。

PS.
以下步驟中的 $PWD/../release/bluez_libs,這是我預設的安裝路徑。可以隨個人喜好變更。

[2]
所需要的 library 彼此之間的相互關係
A. 所需要的 library
  1. bluez-libs-3.36
  2. libxml2-2.7.4
  3. dbus-1.2.1
  4. glib-2.16.5
  5. libusb-0.1.12
  6. bluez-utils-3.36
  7. openobex-1.3.tar.gz
B. 相互關係
  1. bluez-libs-3.36  ==> 可獨立安裝
  2. dbus1.0.2          ==> 需要先安裝 libxml2-2.7.4
  3. bluez-utils-3.36 ==> 需要先安裝 glib-2.16.5
  4. openobex-1.3 ==> 需要先安裝 libusb-0.1.12
C. 安裝順序如A.所列


[3]
安裝步驟: 將以[2] 順序作說明,以下Command line請逐行輸入
1. Comile bluez-libs-3.36
# tar zxvf bluez-libs-3.36.tar.gz <==注意,此前兩步驟每個 library 均需要執行,故以下步驟不再著名。
# cd bluez-libs-3.36 <==注意,此前兩步驟每個 library 均需要執行,故以下步驟不再著名。
# ./configure --prefix="$PWD/../release/bluez_libs" --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc
# make
# make install

2. Compile libxml2-2.7.4
# ./configure --prefix="$PWD/../release/bluez_libs" --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi CC=arm-none-linux-gnueabi-gcc
# make 
# make install

3.Compile dbus-1.2.1 
# echo ac_cv_have_abstract_sockets=yes>arm-linux.cache
# ./configure --prefix="$PWD/../release/bluez_libs" --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi CC="arm-none-linux-gnueabi-gcc -I/home/rexking/smb_share/release/bluez_libs/include -L/home/rexking/smb_share/release/bluez_libs/lib" --cache-file=arm-linux.cache --with-x=no PKG_CONFIG_PATH="$PWD/../release/bluez_libs/lib/pkgconfig"
# make
# make install

 4.Compile glib-2.16.5
 # echo ac_cv_type_long_long=yes>arm-linux.cache
 # echo glib_cv_stack_grows=no>>arm-linux.cache
 # echo glib_cv_uscore=no>>arm-linux.cache
 # echo ac_cv_func_posix_getgrgid_r=yes>>arm-linux.cache
 # echo ac_cv_func_posix_getpwuid_r=yes>>arm-linux.cache
 # ./configure --prefix="$PWD/../release/bluez_libs" --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi CC="arm-none-linux-gnueabi-gcc -l/home/rexking/smb_share/release -L/home/rexking/smb_share/release/bluez_libs/lib" --cache-file=arm-linux.cache PKG_CONFIG_PATH="$PWD/../release/bluez_libs/lib/pkgconfig"
 # make
 # make install

5. Compile libusb-0.1.12
 # ./configure --prefix="$PWD/../release/bluez_libs" --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi CC="arm-none-linux-gnueabi-gcc -I/home/rexking/smb_share/release/bluez_libs/include -L/home/rexking/smb_share/release/bluez_libs/lib"
 #  make
 #  make install

6.Compile bluez-utils-3.36.
 #   ./configure --prefix="$PWD/../release/bluez_libs" --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi CC="arm-none-linux-gnueabi-gcc -I/home/rexking/smb_share/release/bluez_libs/include -L/home/rexking/smb_share/release/bluez_libs/lib -shared" PKG_CONFIG_PATH="$PWD/../release/bluez_libs/lib/pkgconfig" --disable-audio --enable-test
 #  make
 #  make install

7.Compile openobex-1.3.tar.gz
 #  ./configure --prefix="$PWD/../release_obex" --host=arm-none-linux-gnueabi --target=arm-none-linux-gnueabi CC="arm-none-linux-gnueabi-gcc -I/home/rexking/smb_share/release_bt/release/bluez_libs/include -L/home/rexking/smb_share/release_bt/release/bluez_libs/lib" --enable-bluetooth --disable-usb --enable-apps
 #  make
 #  make install

在這安裝過程中,有許多問題要排除。排除方法日後再補上。


留言