Вам не нужно указывать исходный файл ~/.bash_alieases в файле ~/.bashrc. Если вы посмотрите с вниманием в файле ~/.bashrc, вы найдете где-нибудь после строки 100 следующие строки:
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
Это означает: если файл ~/.bash_aliases существует и является обычным файлом, затем выполните файл. source ~/.bash_aliases и . ~/.bash_aliases являются синонимами в bash (см. раздел «Какая разница между« источником »и«. »в bash?).
Только если по какой-либо ошибке у вас нет вы должны добавить их снова в свой файл ~/.bashrc.
Наконец, если вам интересно запустить любой другой файл при запуске терминала, хорошим способом является источник этого файла внутри ~/.bashrc выполните следующие действия:
source ~/<filename>
или, просто:
. ~/<filename>
Я почти в том же положении с тобой. Следуя этим инструкциям, я добился успеха в создании самого ядра и одного модуля.
Я добавил три основные статьи (40 ~ 42) в главную статью, чтобы заставить Eclipse скомпилировать определенный драйвер, а не целое ядро.
Загрузите и установите Eclipse plus CDT. Настройте и постройте ядро для определения CONFIG_* и сгенерируйте autoconf.h. Это можно сделать до или после загрузки и установки Eclipse. Убедитесь, что у вас есть правильный источник ядра (например, убедитесь, что вы находитесь в правой ветке git). Если вы проверите еще одну ветку позже, это нормально, но вам нужно будет переиндексировать источник, и это занимает около 20 минут. Запустите Eclipse. Нажмите File -> New -> C Project Заполните имя проекта, например my_kernel Снимите флажок Использовать местоположение по умолчанию и введите корневой каталог вашего ядра в поле «Место». В области «Тип проекта: панель» щелкните проект Makefile и выберите «Пустой проект». Справа выберите Linux GCC. Нажмите Advanced settings ... и появится диалоговое окно «Свойства». Выберите «Ресурс» слева, а затем в разделе «Кодировка текстового файла» выберите «Другие» и ISO-8859-1 в поле, затем нажмите «Применить». Откройте вкладку C/C++ General слева. Нажмите Preprocessor Include Paths Выберите GNU C в списке «Языки». Выберите CDT User Setting Entries в списке «Записи настроек». Нажмите Add. ... Выберите «Файл макросов препроцессора» в раскрывающемся списке «Верхний левый», «Путь к проекту» в раскрывающемся списке вверху справа и введите include/generated/autoconf.h в текстовое поле Файл. (Примечание: для старых ядер [pre-2.6.36?] Расположение autoconf.h равно include/linux/autoconf.h). Также добавьте любые другие файлы макросов, которые вы используете. Нажмите на флажок Indexer Checkmark в поле Enable project specific settings. Снимите флажок Исходные файлы индекса, не включенные в сборку. Удалите файлы для индексации переднего окна. Нажмите «Пути» и «Символы» слева. Перейдите на вкладку «Включает», затем выберите GNU C. Нажмите Add ... Нажмите Workspace ... затем выберите каталог включений ядра. Сделайте еще одно добавление, рабочее пространство и добавьте arch/architecture/include, например, arch/powerpc/include Нажмите кнопку # Symbols Нажмите Add ... Установите имя на __KERNEL__ Установите значение на 1 и нажмите OK. Нажмите вкладку «Расположение источника». Нажмите на твист для вашего проекта. Выберите элемент «Фильтр» и нажмите «Редактировать фильтр» ... Нажмите «Добавить несколько ...» и затем выберите все каталоги arch / * в исходном коде ядра, которые не будут использоваться (т.е. все те, которые не используются для используемой архитектуры ) Нажмите OK и OK еще раз, чтобы закрыть это диалоговое окно. Нажмите «ОК» в диалоговом окне «Свойства». Нажмите «Готово» в диалоговом окне «Проект». Щелкните правой кнопкой мыши по проекту и выберите «Индекс», затем «Перестроить». Для завершения потребуется около 20 минут. Откройте настройку вашего проекта, перейдите к C/C++ build -> Behaviour (tab) Установите флажок Build (Incremental buil) и добавьте путь к модулю в текстовое поле (в моем случае M=drivers/servo/dynamixel). Когда вы будете готовы к модулю и хотите скомпилировать ядро, повторите 41 и замените M=.. на all.Я почти в том же положении с тобой. Следуя , это istructions, я имел успех с самим построением ядра и одним модулем.
В основной статье я добавил три шага (40 ~ 42), чтобы сделать Eclipse компилятором определенного драйвера, а не целого ядра.
CONFIG_*
и сгенерировать autoconf.h
. Это можно сделать до или после загрузки и установки Eclipse. File
-> New
-> C Project
my_kernel
Linux GCC
Advanced settings
... и появится диалоговое окно «Свойства». ISO-8859-1
в поле, затем нажмите «Применить» C/C++ General
слева. Preprocessor Include Paths
GNU C
в списке Языки CDT User Setting Entries
в списке «Записи настроек» Add
.... Выберите «Файл макросов препроцессора» в раскрывающемся списке верхнего левого меню, «Путь к проекту» в раскрывающемся списке вверху справа и введите include/generated/autoconf.h
в Файл текстовое окно. (Примечание: для старых ядер [pre-2.6.36?] Расположение autoconf.h
равно include/linux/autoconf.h
) GNU C
Add
... Workspace
... затем выберите каталог include вашего ядра arch/architecture/include
, например, arch/powerpc/include
# Symbols
Add
... __KERNEL__
1
и нажмите OK. C/C++ build -> Behaviour (tab)
Build (Incremental buil)
и добавьте путь к модулю в текстовое поле (в моем случае M=drivers/servo/dynamixel
). M=..
на all
. Я почти в том же положении с тобой. Следуя , это istructions, я имел успех с самим построением ядра и одним модулем.
В основной статье я добавил три шага (40 ~ 42), чтобы сделать Eclipse компилятором определенного драйвера, а не целого ядра.
CONFIG_*
и сгенерировать autoconf.h
. Это можно сделать до или после загрузки и установки Eclipse. File
-> New
-> C Project
my_kernel
Linux GCC
Advanced settings
... и появится диалоговое окно «Свойства». ISO-8859-1
в поле, затем нажмите «Применить» C/C++ General
слева. Preprocessor Include Paths
GNU C
в списке Языки CDT User Setting Entries
в списке «Записи настроек» Add
.... Выберите «Файл макросов препроцессора» в раскрывающемся списке верхнего левого меню, «Путь к проекту» в раскрывающемся списке вверху справа и введите include/generated/autoconf.h
в Файл текстовое окно. (Примечание: для старых ядер [pre-2.6.36?] Расположение autoconf.h
равно include/linux/autoconf.h
) GNU C
Add
... Workspace
... затем выберите каталог include вашего ядра arch/architecture/include
, например, arch/powerpc/include
# Symbols
Add
... __KERNEL__
1
и нажмите OK. C/C++ build -> Behaviour (tab)
Build (Incremental buil)
и добавьте путь к модулю в текстовое поле (в моем случае M=drivers/servo/dynamixel
). M=..
на all
. Если вы хотите сделать разработку драйвера с помощью eclipse, вам придется делать это наоборот.
Вам нужно будет догнать automake, autogen, pkg-config и т. д., создать проект autotools и импортировать его в eclipse. Eclipse-cdt должен предложить это, иначе вы пропустили установку «autotools-plugin» (не знаете точное имя, записывая это из памяти).
Просто откажитесь от идеи, что eclipse-cdt может управлять приличным Makefile , C не является Java, к сожалению или к счастью.
Я новичок в программировании драйверов Linux, я обнаружил, что есть новый способ развернуть модули ядра (которые не находятся в официальном дереве Linux) под названием DKMS. Модуль будет установлен как источник, и DKMS позаботится о его компиляции для каждого ядра. Это означает, что файл Makefile для модуля будет записан вручную, и его источник не будет включен для autotools.
http://linux.dell.com/dkms/
обновлено ...
DKMS переместился на http://linux.dell.com/dkms/
Это руководство / краткое введение в DKMS (ссылки с страницы проекта Dell) : Статья журнала Linux, документ Power Solutions, документ Symposium Ottawa Linux
DKMS, используемый для быстрого развертывания драйверов. Например, модули ядра, использующие DKMS в моей машине Ubuntu:
dkms status
bcmwl, 6.20.155.1+bdcom, 3.5.0-41-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-42-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-43-generic, x86_64: installed
nvidia, 313.26, 3.5.0-42-generic, x86_64: installed
nvidia, 313.26, 3.5.0-43-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-42-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-43-generic, x86_64: installed
Это код, который я написал ранее, он может быть полезен как DKMS Hello World. Статья в Linux Journal
1> вы можете попробовать с помощью этой команды
«make» -> «/ usr / bin / make»
/usr/bin/make -C /lib/modules/2.6.38-8-generic/build M=/home/isaac/workspace/TestDriver1
2> в каталоге сохранить ваше приветственное слово код, имя файла creat "Makefile"
obj-m := NameofyourHelloWold.o
KDIR := /lib/modules/2.6.38-8-generic/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
Если вы хотите сделать разработку драйвера с помощью eclipse, вам придется делать это наоборот.
Вам нужно будет догнать automake, autogen, pkg-config и т. д., создать проект autotools и импортировать его в eclipse. Eclipse-cdt должен предложить это, иначе вы пропустили установку «autotools-plugin» (неуверенный о точном имени, записывая это из памяти).
Просто откажитесь от идеи, что eclipse-cdt может управлять приличным Makefile , C не является Java, к сожалению или к счастью.
Я новичок в программировании драйверов Linux, я обнаружил, что есть новый способ развернуть модули ядра (которые не находятся в официальном дереве Linux) под названием DKMS. Модуль будет установлен как источник, и DKMS позаботится о его компиляции для каждого ядра. Это означает, что файл Makefile для модуля будет записан вручную, и его источник не будет включен для autotools.
обновлено ...
DKMS переместился в http://en.community.dell.com/techcenter/os-applications/w/wiki/2463.linux-projects.aspx
Это руководство / краткое введение в DKMS (ссылки на странице проекта Dell): Статья в журнале Linux , Документ Power Solutions , Ottawa Linux Symposium paper
DKMS используется для быстрого развертывания драйверов. Например, модули ядра, использующие DKMS в моей машине Ubuntu:
dkms status
bcmwl, 6.20.155.1+bdcom, 3.5.0-41-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-42-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-43-generic, x86_64: installed
nvidia, 313.26, 3.5.0-42-generic, x86_64: installed
nvidia, 313.26, 3.5.0-43-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-42-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-43-generic, x86_64: installed
Это код, который я написал ранее, он может быть полезен как DKMS Hello World. https://github.com/sneetsher/RTD-DM5408-Driver-Port-for-Linux
1> вы можете попробовать с помощью этой команды
«make» -> «/ usr / bin / make»
/usr/bin/make -C /lib/modules/2.6.38-8-generic/build M=/home/isaac/workspace/TestDriver1
2> в каталоге сохранить ваше приветственное слово код, имя файла creat "Makefile"
obj-m := NameofyourHelloWold.o
KDIR := /lib/modules/2.6.38-8-generic/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
Я новичок в программировании драйверов Linux, я обнаружил, что есть новый способ развернуть модули ядра (которые не находятся в официальном дереве Linux) под названием DKMS. Модуль будет установлен как источник, и DKMS позаботится о его компиляции для каждого ядра. Это означает, что файл Makefile для модуля будет записан вручную, и его источник не будет включен для autotools.
обновлено ...
DKMS переместился в http://en.community.dell.com/techcenter/os-applications/w/wiki/2463.linux-projects.aspx
Это руководство / краткое введение в DKMS (ссылки на странице проекта Dell): Статья в журнале Linux , Документ Power Solutions , Ottawa Linux Symposium paper
DKMS используется для быстрого развертывания драйверов. Например, модули ядра, использующие DKMS в моей машине Ubuntu:
dkms status
bcmwl, 6.20.155.1+bdcom, 3.5.0-41-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-42-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-43-generic, x86_64: installed
nvidia, 313.26, 3.5.0-42-generic, x86_64: installed
nvidia, 313.26, 3.5.0-43-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-42-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-43-generic, x86_64: installed
Это код, который я написал ранее, он может быть полезен как DKMS Hello World. https://github.com/sneetsher/RTD-DM5408-Driver-Port-for-Linux
1> вы можете попробовать с помощью этой команды
«make» -> «/ usr / bin / make»
/usr/bin/make -C /lib/modules/2.6.38-8-generic/build M=/home/isaac/workspace/TestDriver1
2> в каталоге сохранить ваше приветственное слово код, имя файла creat "Makefile"
obj-m := NameofyourHelloWold.o
KDIR := /lib/modules/2.6.38-8-generic/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
1> вы можете попробовать с помощью этой команды
«make» -> «/ usr / bin / make»
/usr/bin/make -C /lib/modules/2.6.38-8-generic/build M=/home/isaac/workspace/TestDriver1
2> в каталоге сохранить ваше приветственное слово код, имя файла creat "Makefile"
obj-m := NameofyourHelloWold.o
KDIR := /lib/modules/2.6.38-8-generic/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KDIR) M=$(PWD) modules
Я новичок в программировании драйверов Linux, я обнаружил, что есть новый способ развернуть модули ядра (которые не находятся в официальном дереве Linux) под названием DKMS. Модуль будет установлен как источник, и DKMS позаботится о его компиляции для каждого ядра. Это означает, что файл Makefile для модуля будет записан вручную, и его источник не будет включен для autotools.
обновлено ...
DKMS переместился в http://en.community.dell.com/techcenter/os-applications/w/wiki/2463.linux-projects.aspx
Это руководство / краткое введение в DKMS (ссылки на странице проекта Dell): Статья в журнале Linux , Документ Power Solutions , Ottawa Linux Symposium paper
DKMS используется для быстрого развертывания драйверов. Например, модули ядра, использующие DKMS в моей машине Ubuntu:
dkms status
bcmwl, 6.20.155.1+bdcom, 3.5.0-41-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-42-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-43-generic, x86_64: installed
nvidia, 313.26, 3.5.0-42-generic, x86_64: installed
nvidia, 313.26, 3.5.0-43-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-42-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-43-generic, x86_64: installed
Это код, который я написал ранее, он может быть полезен как DKMS Hello World. https://github.com/sneetsher/RTD-DM5408-Driver-Port-for-Linux
Я новичок в программировании драйверов Linux, я обнаружил, что есть новый способ развернуть модули ядра (которые не находятся в официальном дереве Linux) под названием DKMS. Модуль будет установлен как источник, и DKMS позаботится о его компиляции для каждого ядра. Это означает, что файл Makefile для модуля будет записан вручную, и его источник не будет включен для autotools.
обновлено ...
DKMS переместился в http://en.community.dell.com/techcenter/os-applications/w/wiki/2463.linux-projects.aspx
Это руководство / краткое введение в DKMS (ссылки на странице проекта Dell): Статья в журнале Linux , Документ Power Solutions , Ottawa Linux Symposium paper
DKMS используется для быстрого развертывания драйверов. Например, модули ядра, использующие DKMS в моей машине Ubuntu:
dkms status
bcmwl, 6.20.155.1+bdcom, 3.5.0-41-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-42-generic, x86_64: installed
bcmwl, 6.20.155.1+bdcom, 3.5.0-43-generic, x86_64: installed
nvidia, 313.26, 3.5.0-42-generic, x86_64: installed
nvidia, 313.26, 3.5.0-43-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-42-generic, x86_64: installed
vboxhost, 4.3.0, 3.5.0-43-generic, x86_64: installed
Это код, который я написал ранее, он может быть полезен как DKMS Hello World. https://github.com/sneetsher/RTD-DM5408-Driver-Port-for-Linux
Если вы хотите сделать разработку драйвера с помощью eclipse, вам придется делать это наоборот.
Вам нужно будет догнать automake, autogen, pkg-config и т. д., создать проект autotools и импортировать его в eclipse. Eclipse-cdt должен предложить это, иначе вы пропустили установку «autotools-plugin» (неуверенный о точном имени, записывая это из памяти).
Просто откажитесь от идеи, что eclipse-cdt может управлять приличным Makefile , C не является Java, к сожалению или к счастью.