Как собрать VSFTPD для at91sam9263
- vsftp |
- howto |
- embedded linux |
- at91sam9263 |
- arm
Кросс-компиляция libcap
Для запуска VSFTP на Debian 5.0.3 мне потребовалась библиотека libcap, усли у вас ее нет, то ее надо скомпилировать под таргет пользуясь нижеследующими инструкциями. Если библиотека libcap у вас уже есть то этот раздел вы можете пропустить. Я использовал libcap-2.11. Скачанный архив я распаковал в папку /home/dmitry/ARM/libcap-2.11.
Для выполнения кросс-компиляции нам необходимо внести некоторые изменения в исходники libcap-2.11:
-
Редактируем файл Make.Rules и патчим его следующим diff-файлом
--- libcap-2.11/Make.Rules 2008-07-10 10:22:22.000000000 +0400 +++ libcap-2.11/Make.Rules 2009-06-15 16:27:58.000000000 +0400 @@ -20,8 +20,8 @@ inc_prefix=$(lib_prefix) man_prefix=$(prefix)/share else -prefix=/usr -exec_prefix= +prefix=/usr/cross/libcap +exec_prefix=$(prefix) lib_prefix=$(exec_prefix) inc_prefix=$(prefix) man_prefix=$(prefix)/share @@ -42,11 +42,11 @@ # Compilation specifics -CC := gcc +CC := /usr/cross/arm-linux/bin/arm-linux-gcc #place path to your cross compiler here CFLAGS := -O2 BUILD_CC := $(CC) BUILD_CFLAGS := $(CFLAGS) -AR := ar +AR := /usr/cross/arm-linux/bin/arm-linux-ar #place path to your cross accembler here RANLIB := ranlib DEBUG = -g #-DDEBUG WARNINGS=-fPIC -Wall -Wwrite-strings \
-
В файле libcap/_makenames.c найдите строку
#include <sys/capability.h>
и замените ее на
#include "./include/sys/capability.h" -
Откройте файл libcap/Makefile и пропачьте его следующим diff-файлом.
--- libcap-2.11/libcap/Makefile 2008-07-10 10:18:40.000000000 +0400 +++ libcap-2.11/libcap/Makefile 2009-06-15 17:06:41.000000000 +0400 @@ -10,6 +10,12 @@ STALIBNAME=$(LIBTITLE).a # +BUILD_CC := gcc + + + FILES=cap_alloc cap_proc cap_extint cap_flag cap_text cap_file INCLS=libcap.h cap_names.h $(INCS) @@ -17,7 +23,7 @@ MAJLIBNAME=$(LIBNAME).$(VERSION) MINLIBNAME=$(MAJLIBNAME).$(MINOR) GPERF_OUTPUT = _caps_output.gperf -LDFLAGS += -lattr +#LDFLAGS += -lattr all: $(MINLIBNAME) $(STALIBNAME)
-
Откройте файл libcap/include/sys/capability.h и найдите следующую строку
#include <linux/capability.h>
и замените ее на
#include "../linux/capability.h" -
Затем выполните команду
make
Кросс-компиляция VSFTPD
CC = gcc
замените ее на
CC = arm-linux-gcc
Это ваш кросс-компилятор, если вы пользуетесь каким то другим кросс-компилятором, то здесь надо прописать его имя.
- Теперь мы можем приступить к сборке VSFTPD. Я использовал vsftpd-2.1.2.Скамчанный архив я распаковал в папку /home/dmitry/ARM/vsftpd-2.1.2.
- Для успешной уросс-компиляции необходимо провести изменения в исходных файлах.
- Откройте Makefile и отредактируйте вторую строку.
- Откройте vsf_findlibs.sh и ищите строки 48-49 elif locate_library /lib/libcap.so.2; then
- Теперь выполните команду make
- Готовый исполняемый файл vsftpd нужно поместить в папку /sbin, а файл vsftpd.conf в папку /etc на вашей ARM платформе.
echo "/lib/libcap.so.2";
замените их на
elif locate_library /home/dmitry/ARM/libcap-2.11/libcap/libcap.so.2; then
echo "/home/dmitry/ARM/libcap-2.11/libcap/libcap.so.2";
- блог пользователя GDI
- 8357 просмотров
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК
Комментарии
Отправить комментарий