2018年5月30日水曜日

dv_apのソースファイルからコンパイルしてアップデートする方法

Back


最新版のソースをダウンロード

  1. 7M3TJZ 安田OMのダウンロードサイト(https://ja.osdn.net/users/jk1zrw/)より dv-ap をダウンロードします。

  2. dv-ap をクリックすると次のページに移りますので図のような最新pushのリンクをクリックしてください。



  3. 次のページで、右上に有る URL をコピーしてください。



  4. Raspberryのターミナルで次のようなコマンドを使用してダウンロードします。

  5. $ sudo apt install git
    $ git clone git://git.osdn.net/gitroot/dv-ap/dv-ap.git
    $ cd dv-ap
    

    dv-apというフォルダが作成されます。内容はdv_apのソースファイルです。
    (注意:フォルダ名はハイフン(-)、プログラム名はアンダースコア(_))

コンパイル時使用される Makefile を編集

  1. 実際は下記の内容をMakefileと言う名前で保存してください。

  2.   GNU nano 2.7.4                         File: Makefile
    #######################################################################
    #  Makefile for compiling dv_ap
    #
    #  Arranged by je3hcz based on 7m3tjz's original
    #######################################################################
    
    # Program Name and Object file names
    bin_PROGRAMS    = dv_ap
    dv_ap_OBJECTS   = main.o aprs2dstar.o aprs.o beacon.o crc.o dvap.o \
                      dv_utils.o echo_server.o from_inet.o from_node.o \
                      gps_a.o gps.o handler.o httpd_srv.o init.o \
                      node_usb_init.o pass_send.o print_PICinfo.o \
                      read_config.o reply_busy.o send_check.o send_inet.o \
                      send_node.o send_resp.o status.o upnp.o
    
    # Redefine MACROs
    CC              = gcc
    dv_ap_LIBS      = -lusb -lcrypto
    
    # Define extention of Suffix Rules
    .SUFFIXES   : .c .o
    
    # Rule of compiling programs
    $(bin_PROGRAMS) : $(dv_ap_OBJECTS)
        $(CC) $(dv_ap_LIBS) -o $(bin_PROGRAMS) $^
    
    # Suffix Rule
    .c.o    :
        $(CC) -c $<
    
    # Target of Delete files
    .PHONY  : clean
    clean   :
        $(RM) $(bin_PROGRAMS) $(dv_ap_OBJECTS)
    
    # Dependency of Header Files
    main.o          : dv_ap.h
    aprs.o          : dv_ap.h
    beacon.o        : dv_ap.h
    crc.o           : crc.h
    dvap.o          : dv_ap.h
    dv_utils.o      : dv_ap.h
    echo_server.o   : dv_ap.h
    from_inet.o     : dv_ap.h
    from_node.o     : dv_ap.h
    gps_a.o         : dv_ap.h
    gps.o           : dv_ap.h dprs_symbol.h
    handler.o       : dv_ap.h
    httpd_srv.o     : dv_ap.h config.h
    init.o          : dv_ap.h
    node_usb_init.o : dv_ap.h
    pass_send.o     : dv_ap.h
    print_PICinfo.o : dv_ap.h
    read_config.o   : dv_ap.h
    reply_busy.o    : dv_ap.h
    send_check.o    : dv_ap.h
    send_inet.o     : dv_ap.h
    send_node.o     : dv_ap.h
    send_resp.o     : dv_ap.h
    status_send.o   : dv_ap.h config.h
    upnp.o          : dv_ap.h
    
    
    図中はRaspberry上ではバックスラッシュで長い一行を数段分割した時の接続詞です。

  3. もし、Makefile:25: *** missing separator. Stop. の様なエラーが発生した時は、インデントされた $(CC) 2箇所と $(RM)1箇所の前にスペースが入っていると思われるのでスペースを全て削除して TAB ひとつを挿入してください。 ([Ctrl]+[o],[Enter],[Ctrl]+[x]で保存)

  4. *ヘッダーファイルの依存関係部分は更にスマートな記述が有るのだろうと思っていますが、現状分かりません。ご教授賜れば幸いです。

コンパイルを実行する

  1. 実行は $ make のみ(ダウンロードした状況によっては sudo が必要になる場合も有ります。)

  2. アップデートではなく新規にインストールされる方の場合、ここで「USBに関するヘッダファイルが有りません」というメッセージが表示されることが有ります。 その場合は、libusb をインストールしてください。

    $ sudo apt install libusb-dev
    

  3. 作成されたプログラムを規定のフォルダに写します。

  4. $ sudo mv dv_ap /usr/bin
    $ sudo reboot
    

    移動ではなくコピー($ cp ...)でも良いのですが dv_ap が動いたままだとコピーに失敗します。

    次のようにするとコンパイル中のトランザクションファイルなどが削除されます。 コンパイルし直す場合には必ずこの作業を行ってから実行してください。

    $ make clean
    


以上でアップデートは終了です。ダッシュボードのバージョンが合っているか確認してください。

73
J E 3 H C Z /XLX047 B
Back




0 件のコメント:

コメントを投稿