Created
October 21, 2011 09:23
-
-
Save hauptmech/1303438 to your computer and use it in GitHub Desktop.
Archlinux PKGBUILD for linux-2.6.37.6 + xenomai-2.5.6 on NetusG20 ARM board
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This will build a linux xenomai realtime kernel for the Netus FoxG20 arm board. | |
makepkg --config makepkg.conf | |
You will be given the chance to configure the kernel. The only setting to change is | |
Realtime->Machine->FPU... (Set to off) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -upr linux-3.0.orig/kernel/printk.c linux-3.0/kernel/printk.c | |
--- linux-3.0.orig/kernel/printk.c 2011-07-22 05:17:23.000000000 +0300 | |
+++ linux-3.0/kernel/printk.c 2011-07-27 14:43:07.000000000 +0300 | |
@@ -58,7 +58,7 @@ void asmlinkage __attribute__((weak)) ea | |
/* We show everything that is MORE important than this.. */ | |
#define MINIMUM_CONSOLE_LOGLEVEL 1 /* Minimum loglevel we let people use */ | |
-#define DEFAULT_CONSOLE_LOGLEVEL 7 /* anything MORE serious than KERN_DEBUG */ | |
+#define DEFAULT_CONSOLE_LOGLEVEL 4 /* anything MORE serious than KERN_DEBUG */ | |
DECLARE_WAIT_QUEUE_HEAD(log_wait); | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# /etc/makepkg.conf | |
# | |
######################################################################### | |
# SOURCE ACQUISITION | |
######################################################################### | |
# | |
#-- The download utilities that makepkg should use to acquire sources | |
# Format: 'protocol::agent' | |
DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u' | |
'http::/usr/bin/wget -c -t 3 --waitretry=3 -O %o %u' | |
'https::/usr/bin/wget -c -t 3 --waitretry=3 --no-check-certificate -O %o %u' | |
'rsync::/usr/bin/rsync -z %u %o' | |
'scp::/usr/bin/scp -C %u %o') | |
# Other common tools: | |
# /usr/bin/snarf | |
# /usr/bin/lftpget -c | |
# /usr/bin/curl | |
######################################################################### | |
# ARCHITECTURE, COMPILE FLAGS | |
######################################################################### | |
# | |
CARCH="arm" | |
CHOST="arm-none-linux-gnueabi" | |
#-- Exclusive: will only run on x86_64 | |
# -march (or -mcpu) builds exclusively for an architecture | |
# -mtune optimizes for an architecture, but builds for whole processor family | |
#CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" | |
#CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2" | |
#LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,--hash-style=gnu" | |
#-- Make Flags: change this for DistCC/SMP systems | |
#$MAKEFLAGS="-j4" | |
######################################################################### | |
# BUILD ENVIRONMENT | |
######################################################################### | |
# | |
# Defaults: BUILDENV=(fakeroot !distcc color !ccache check) | |
# A negated environment option will do the opposite of the comments below. | |
# | |
#-- fakeroot: Allow building packages as a non-root user | |
#-- distcc: Use the Distributed C/C++/ObjC compiler | |
#-- color: Colorize output messages | |
#-- ccache: Use ccache to cache compilation | |
#-- check: Run the check() function if present in the PKGBUILD | |
# | |
BUILDENV=(fakeroot !distcc color !ccache check) | |
# | |
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition, | |
#-- specify a space-delimited list of hosts running in the DistCC cluster. | |
#DISTCC_HOSTS="" | |
######################################################################### | |
# GLOBAL PACKAGE OPTIONS | |
# These are default values for the options=() settings | |
######################################################################### | |
# | |
# Default: OPTIONS=(strip docs libtool emptydirs zipman purge) | |
# A negated option will do the opposite of the comments below. | |
# | |
#-- strip: Strip symbols from binaries/libraries | |
#-- docs: Save doc directories specified by DOC_DIRS | |
#-- libtool: Leave libtool (.la) files in packages | |
#-- emptydirs: Leave empty directories in packages | |
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip | |
#-- purge: Remove files specified by PURGE_TARGETS | |
# | |
OPTIONS=(!strip docs libtool emptydirs zipman purge) | |
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512 | |
INTEGRITY_CHECK=(md5) | |
#-- Options to be used when stripping binaries. See `man strip' for details. | |
STRIP_BINARIES="--strip-all" | |
#-- Options to be used when stripping shared libraries. See `man strip' for details. | |
STRIP_SHARED="--strip-unneeded" | |
#-- Options to be used when stripping static libraries. See `man strip' for details. | |
STRIP_STATIC="--strip-debug" | |
#-- Manual (man and info) directories to compress (if zipman is specified) | |
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info}) | |
#-- Doc directories to remove (if !docs is specified) | |
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc}) | |
#-- Files to be removed from all packages (if purge is specified) | |
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod) | |
######################################################################### | |
# PACKAGE OUTPUT | |
######################################################################### | |
# | |
# Default: put built package and cached source in build directory | |
# | |
#-- Destination: specify a fixed directory where all packages will be placed | |
#PKGDEST=/home/packages | |
#-- Source cache: specify a fixed directory where source files will be cached | |
#SRCDEST=/home/sources | |
#-- Source packages: specify a fixed directory where all src packages will be placed | |
#SRCPKGDEST=/home/srcpackages | |
#-- Packager: name/email of the person or organization building packages | |
#PACKAGER="John Doe <john@doe.com>" | |
######################################################################### | |
# EXTENSION DEFAULTS | |
######################################################################### | |
# | |
# WARNING: Do NOT modify these variables unless you know what you are | |
# doing. | |
# | |
PKGEXT='.pkg.tar.xz' | |
SRCEXT='.src.tar.gz' | |
# vim: set ft=sh ts=2 sw=2 et: |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- linux-2.6.37.6/arch/arm/mach-at91/board-foxg20.c 1970-01-01 01:00:00.000000000 +0100 | |
+++ linux-2.6.38.8/arch/arm/mach-at91/board-foxg20.c 2011-06-03 03:35:11.000000000 +0200 | |
@@ -0,0 +1,274 @@ | |
+/* | |
+ * Copyright (C) 2005 SAN People | |
+ * Copyright (C) 2008 Atmel | |
+ * Copyright (C) 2010 Lee McLoughlin - lee@lmmrtech.com | |
+ * Copyright (C) 2010 Sergio Tanzilli - tanzilli@acmesystems.it | |
+ * | |
+ * This program is free software; you can redistribute it and/or modify | |
+ * it under the terms of the GNU General Public License as published by | |
+ * the Free Software Foundation; either version 2 of the License, or | |
+ * (at your option) any later version. | |
+ * | |
+ * This program is distributed in the hope that it will be useful, | |
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
+ * GNU General Public License for more details. | |
+ * | |
+ * You should have received a copy of the GNU General Public License | |
+ * along with this program; if not, write to the Free Software | |
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
+ */ | |
+ | |
+#include <linux/types.h> | |
+#include <linux/init.h> | |
+#include <linux/mm.h> | |
+#include <linux/module.h> | |
+#include <linux/platform_device.h> | |
+#include <linux/spi/spi.h> | |
+#include <linux/spi/at73c213.h> | |
+#include <linux/gpio.h> | |
+#include <linux/gpio_keys.h> | |
+#include <linux/input.h> | |
+#include <linux/clk.h> | |
+#include <linux/w1-gpio.h> | |
+ | |
+#include <mach/hardware.h> | |
+#include <asm/setup.h> | |
+#include <asm/mach-types.h> | |
+#include <asm/irq.h> | |
+ | |
+#include <asm/mach/arch.h> | |
+#include <asm/mach/map.h> | |
+#include <asm/mach/irq.h> | |
+ | |
+#include <mach/board.h> | |
+#include <mach/at91sam9_smc.h> | |
+ | |
+#include "sam9_smc.h" | |
+#include "generic.h" | |
+ | |
+/* | |
+ * The FOX Board G20 hardware comes as the "Netus G20" board with | |
+ * just the cpu, ram, dataflash and two header connectors. | |
+ * This is plugged into the FOX Board which provides the ethernet, | |
+ * usb, rtc, leds, switch, ... | |
+ * | |
+ * For more info visit: http://www.acmesystems.it/foxg20 | |
+ */ | |
+ | |
+ | |
+static void __init foxg20_map_io(void) | |
+{ | |
+ /* Initialize processor: 18.432 MHz crystal */ | |
+ at91sam9260_initialize(18432000); | |
+ | |
+ /* DBGU on ttyS0. (Rx & Tx only) */ | |
+ at91_register_uart(0, 0, 0); | |
+ | |
+ /* USART0 on ttyS1. (Rx, Tx, CTS, RTS, DTR, DSR, DCD, RI) */ | |
+ at91_register_uart(AT91SAM9260_ID_US0, 1, | |
+ ATMEL_UART_CTS | |
+ | ATMEL_UART_RTS | |
+ | ATMEL_UART_DTR | |
+ | ATMEL_UART_DSR | |
+ | ATMEL_UART_DCD | |
+ | ATMEL_UART_RI); | |
+ | |
+ /* USART1 on ttyS2. (Rx, Tx, RTS, CTS) */ | |
+ at91_register_uart(AT91SAM9260_ID_US1, 2, | |
+ ATMEL_UART_CTS | |
+ | ATMEL_UART_RTS); | |
+ | |
+ /* USART2 on ttyS3. (Rx & Tx only) */ | |
+ at91_register_uart(AT91SAM9260_ID_US2, 3, 0); | |
+ | |
+ /* USART3 on ttyS4. (Rx, Tx, RTS, CTS) */ | |
+ at91_register_uart(AT91SAM9260_ID_US3, 4, | |
+ ATMEL_UART_CTS | |
+ | ATMEL_UART_RTS); | |
+ | |
+ /* USART4 on ttyS5. (Rx & Tx only) */ | |
+ at91_register_uart(AT91SAM9260_ID_US4, 5, 0); | |
+ | |
+ /* USART5 on ttyS6. (Rx & Tx only) */ | |
+ at91_register_uart(AT91SAM9260_ID_US5, 6, 0); | |
+ | |
+ /* set serial console to ttyS0 (ie, DBGU) */ | |
+ at91_set_serial_console(0); | |
+ | |
+ /* Set the internal pull-up resistor on DRXD */ | |
+ at91_set_A_periph(AT91_PIN_PB14, 1); | |
+ | |
+} | |
+ | |
+static void __init foxg20_init_irq(void) | |
+{ | |
+ at91sam9260_init_interrupts(NULL); | |
+} | |
+ | |
+ | |
+/* | |
+ * USB Host port | |
+ */ | |
+static struct at91_usbh_data __initdata foxg20_usbh_data = { | |
+ .ports = 2, | |
+}; | |
+ | |
+/* | |
+ * USB Device port | |
+ */ | |
+static struct at91_udc_data __initdata foxg20_udc_data = { | |
+ .vbus_pin = AT91_PIN_PC6, | |
+ .pullup_pin = 0, /* pull-up driven by UDC */ | |
+}; | |
+ | |
+ | |
+/* | |
+ * SPI devices. | |
+ */ | |
+static struct spi_board_info foxg20_spi_devices[] = { | |
+#if !defined(CONFIG_MMC_AT91) | |
+ { | |
+ .modalias = "mtd_dataflash", | |
+ .chip_select = 1, | |
+ .max_speed_hz = 15 * 1000 * 1000, | |
+ .bus_num = 0, | |
+ }, | |
+#endif | |
+}; | |
+ | |
+ | |
+/* | |
+ * MACB Ethernet device | |
+ */ | |
+static struct at91_eth_data __initdata foxg20_macb_data = { | |
+ .phy_irq_pin = AT91_PIN_PA7, | |
+ .is_rmii = 1, | |
+}; | |
+ | |
+/* | |
+ * MCI (SD/MMC) | |
+ * det_pin, wp_pin and vcc_pin are not connected | |
+ */ | |
+static struct at91_mmc_data __initdata foxg20_mmc_data = { | |
+ .slot_b = 1, | |
+ .wire4 = 1, | |
+}; | |
+ | |
+ | |
+/* | |
+ * LEDs | |
+ */ | |
+static struct gpio_led foxg20_leds[] = { | |
+ { /* user led, red */ | |
+ .name = "user_led", | |
+ .gpio = AT91_PIN_PC7, | |
+ .active_low = 0, | |
+ .default_trigger = "heartbeat", | |
+ }, | |
+}; | |
+ | |
+ | |
+/* | |
+ * GPIO Buttons | |
+ */ | |
+#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE) | |
+static struct gpio_keys_button foxg20_buttons[] = { | |
+ { | |
+ .gpio = AT91_PIN_PC4, | |
+ .code = BTN_1, | |
+ .desc = "Button 1", | |
+ .active_low = 1, | |
+ .wakeup = 1, | |
+ }, | |
+}; | |
+ | |
+static struct gpio_keys_platform_data foxg20_button_data = { | |
+ .buttons = foxg20_buttons, | |
+ .nbuttons = ARRAY_SIZE(foxg20_buttons), | |
+}; | |
+ | |
+static struct platform_device foxg20_button_device = { | |
+ .name = "gpio-keys", | |
+ .id = -1, | |
+ .num_resources = 0, | |
+ .dev = { | |
+ .platform_data = &foxg20_button_data, | |
+ } | |
+}; | |
+ | |
+static void __init foxg20_add_device_buttons(void) | |
+{ | |
+ at91_set_gpio_input(AT91_PIN_PC4, 1); /* btn1 */ | |
+ at91_set_deglitch(AT91_PIN_PC4, 1); | |
+ | |
+ platform_device_register(&foxg20_button_device); | |
+} | |
+#else | |
+static void __init foxg20_add_device_buttons(void) {} | |
+#endif | |
+ | |
+ | |
+#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE) | |
+static struct w1_gpio_platform_data w1_gpio_pdata = { | |
+ /* If you choose to use a pin other than PB16 it needs to be 3.3V */ | |
+ .pin = AT91_PIN_PB16, | |
+ .is_open_drain = 1, | |
+}; | |
+ | |
+static struct platform_device w1_device = { | |
+ .name = "w1-gpio", | |
+ .id = -1, | |
+ .dev.platform_data = &w1_gpio_pdata, | |
+}; | |
+ | |
+static void __init at91_add_device_w1(void) | |
+{ | |
+ at91_set_GPIO_periph(w1_gpio_pdata.pin, 1); | |
+ at91_set_multi_drive(w1_gpio_pdata.pin, 1); | |
+ platform_device_register(&w1_device); | |
+} | |
+ | |
+#endif | |
+ | |
+ | |
+static struct i2c_board_info __initdata foxg20_i2c_devices[] = { | |
+ { | |
+ I2C_BOARD_INFO("24c512", 0x50), | |
+ }, | |
+}; | |
+ | |
+ | |
+static void __init foxg20_board_init(void) | |
+{ | |
+ /* Serial */ | |
+ at91_add_device_serial(); | |
+ /* USB Host */ | |
+ at91_add_device_usbh(&foxg20_usbh_data); | |
+ /* USB Device */ | |
+ at91_add_device_udc(&foxg20_udc_data); | |
+ /* SPI */ | |
+ at91_add_device_spi(foxg20_spi_devices, ARRAY_SIZE(foxg20_spi_devices)); | |
+ /* Ethernet */ | |
+ at91_add_device_eth(&foxg20_macb_data); | |
+ /* MMC */ | |
+ at91_add_device_mmc(0, &foxg20_mmc_data); | |
+ /* I2C */ | |
+ at91_add_device_i2c(foxg20_i2c_devices, ARRAY_SIZE(foxg20_i2c_devices)); | |
+ /* LEDs */ | |
+ at91_gpio_leds(foxg20_leds, ARRAY_SIZE(foxg20_leds)); | |
+ /* Push Buttons */ | |
+ foxg20_add_device_buttons(); | |
+#if defined(CONFIG_W1_MASTER_GPIO) || defined(CONFIG_W1_MASTER_GPIO_MODULE) | |
+ at91_add_device_w1(); | |
+#endif | |
+} | |
+ | |
+MACHINE_START(ACMENETUSFOXG20, "Acme Systems srl FOX Board G20") | |
+ /* Maintainer: Sergio Tanzilli */ | |
+ .boot_params = AT91_SDRAM_BASE + 0x100, | |
+ .timer = &at91sam926x_timer, | |
+ .map_io = foxg20_map_io, | |
+ .init_irq = foxg20_init_irq, | |
+ .init_machine = foxg20_board_init, | |
+MACHINE_END | |
--- linux-2.6.37.6/arch/arm/mach-at91/Kconfig 2011-03-27 21:01:41.000000000 +0200 | |
+++ linux-2.6.38.8/arch/arm/mach-at91/Kconfig 2011-06-03 03:35:11.000000000 +0200 | |
@@ -362,6 +362,12 @@ | |
Select this if you are using a Eukrea Electromatique's | |
CPU9G20 Board <http://www.eukrea.com/> | |
+config MACH_ACMENETUSFOXG20 | |
+ bool "Acme Systems srl FOX Board G20" | |
+ help | |
+ Select this if you are using Acme Systems | |
+ FOX Board G20 <http://www.acmesystems.it> | |
+ | |
config MACH_PORTUXG20 | |
bool "taskit PortuxG20" | |
help | |
@@ -381,6 +387,13 @@ | |
Select this if you are using taskit's Stamp9G20 CPU module on this | |
carrier board, beeing the decentralized unit of a building automation | |
system; featuring nvram, eth-switch, iso-rs485, display, io | |
+ | |
+config MACH_GSIA18S | |
+ bool "GS_IA18_S board" | |
+ help | |
+ This enables support for the GS_IA18_S board | |
+ produced by GeoSIG Ltd company. This is an internet accelerograph. | |
+ <http://www.geosig.com> | |
endif | |
if (ARCH_AT91SAM9260 || ARCH_AT91SAM9G20) | |
--- linux-2.6.37.6/arch/arm/mach-at91/Makefile 2011-03-27 21:01:41.000000000 +0200 | |
+++ linux-2.6.38.8/arch/arm/mach-at91/Makefile 2011-06-03 03:35:11.000000000 +0200 | |
@@ -63,9 +63,11 @@ | |
# AT91SAM9G20 board-specific support | |
obj-$(CONFIG_MACH_AT91SAM9G20EK) += board-sam9g20ek.o | |
obj-$(CONFIG_MACH_CPU9G20) += board-cpu9krea.o | |
+obj-$(CONFIG_MACH_ACMENETUSFOXG20) += board-foxg20.o | |
obj-$(CONFIG_MACH_STAMP9G20) += board-stamp9g20.o | |
obj-$(CONFIG_MACH_PORTUXG20) += board-stamp9g20.o | |
obj-$(CONFIG_MACH_PCONTROL_G20) += board-pcontrol-g20.o board-stamp9g20.o | |
+obj-$(CONFIG_MACH_GSIA18S) += board-gsia18s.o board-stamp9g20.o | |
# AT91SAM9260/AT91SAM9G20 board-specific support | |
obj-$(CONFIG_MACH_SNAPPER_9260) += board-snapper9260.o |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# $Id: PKGBUILD 130991 2011-07-09 12:23:51Z thomas $ | |
# Maintainer: Tobias Powalowski <tpowa@archlinux.org> | |
# Maintainer: Thomas Baechler <thomas@archlinux.org> | |
pkgbase=linux | |
pkgname=('linux-xenomai-AT91G20' 'linux-headers-xenomai-AT91G20' 'xenomai') # Build stock -ARCH kernel | |
# pkgname=linux-custom # Build kernel with a different name | |
_kernelname=${pkgname#linux} | |
_basekernel=2.6.37 | |
_xenover=2.5.6 | |
pkgver=${_basekernel}.6 | |
pkgrel=1 | |
arch=('arm') | |
url="http://www.kernel.org/" | |
license=('GPL2') | |
makedepends=('uboot-mkimage') | |
options=('!strip') | |
source=("ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-${pkgver}.tar.bz2" | |
#http://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.37.6.tar.bz2 | |
#"ftp://ftp.kernel.org/pub/linux/kernel/v3.0/patch-${pkgver}.gz" | |
#"ftp://ftp.archlinux.org/other/linux/patch-${pkgver}.gz" | |
#Xenomai files & latest adeos patch | |
"http://download.gna.org/xenomai/stable/xenomai-${_xenover}.tar.bz2" | |
"http://download.gna.org/adeos/patches/v2.6/arm/adeos-ipipe-${pkgver}-arm-1.18-03.patch" | |
#ACME Netus kernel config files | |
"http://www.acmesystems.it/download/kernel_2.6.38/.config" | |
"http://www.acmesystems.it/download/kernel_2.6.38/makefile" | |
"change-default-console-loglevel.patch" | |
#ACME arch/arm/mach-at91/{Kconfig,Makefile,board-foxg20.c} | |
"Netus.patch" | |
) | |
md5sums=('05970afdce8ec4323a10dcd42bc4fb0c' | |
'fbc1347de290d76c6eb1665e2510f545' | |
'176b1afb1a8063bf50694cd1c6ab9983' | |
'0a7f6b137ede897b968e545c710f39be' | |
'0210b2c7be8212e22d2e5f587dae7d84' | |
'9d3c56a4b999c8bfbd4018089a62f662' | |
'7565f270d1c2fa0e16e0f102766c5d4d' | |
) | |
build() { | |
cd "${srcdir}/linux-${pkgver}" | |
#patch -p1 -i "${srcdir}/patch-${pkgver}" | |
# add latest fixes from stable queue, if needed | |
# http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git | |
# set DEFAULT_CONSOLE_LOGLEVEL to 4 (same value as the 'quiet' kernel param) | |
# remove this when a Kconfig knob is made available by upstream | |
# (relevant patch sent upstream: https://lkml.org/lkml/2011/7/26/227) | |
#patch -Np1 -i "${srcdir}/change-default-console-loglevel.patch" | |
patch -uNp1 -i ${srcdir}/Netus.patch | |
${srcdir}/xenomai-${_xenover}/scripts/prepare-kernel.sh --linux=${srcdir}/linux-${pkgver}/ --arch=arm --adeos=${srcdir}/adeos-ipipe-${pkgver}-arm-1.18-03.patch | |
# if [ "${CARCH}" = "x86_64" ]; then | |
# cat "${srcdir}/config.x86_64" > ./.config | |
# else | |
# cat "${srcdir}/config" > ./.config | |
# fi | |
#Copy in Netus config files | |
cat "${srcdir}/.config" > ./.config | |
cat "${srcdir}/makefile" > ./makefile | |
#Adjust cross compiler | |
sed -i "s|CROSS_COMPILE=arm-linux-gnueabi-|CROSS_COMPILE=arm-none-linux-gnueabi-|g" makefile | |
# remove the sublevel from Makefile | |
# this ensures our kernel version is always 3.X-ARCH | |
# this way, minor kernel updates will not break external modules | |
# we need to change this soon, see FS#16702 | |
# get kernel version | |
# make prepare | |
# load configuration | |
# Configure the kernel. Replace the line below with one of your choice. | |
make menuconfig # CLI menu for configuration | |
#make nconfig # new CLI menu for configuration | |
#make xconfig # X-based configuration | |
#make oldconfig # using old config from previous kernel version | |
# ... or manually edit .config | |
#################### | |
# stop here | |
# this is useful to configure the kernel | |
#msg "Stopping build" | |
#return 1 | |
#################### | |
# yes "" | make config | |
# build! | |
make ${MAKEFLAGS} uImage | |
make ${MAKEFLAGS} modules | |
cd "${srcdir}/xenomai-${_xenover}" | |
./configure --build=i686-pc-linux-gnu --host=arm-none-linux-gnueabi --enable-arm-mach=at91sam9 --enable-arm-tsc --enable-arm-eabi --prefix=/usr/xenomai | |
make | |
} | |
package_linux-xenomai-AT91G20() { | |
pkgdesc="The Linux Kernel and modules" | |
groups=('base') | |
depends=('coreutils' 'linux-firmware' 'module-init-tools>=3.16' ) | |
optdepends=('crda: to set the correct wireless channels of your country') | |
provides=('kernel26') | |
conflicts=('kernel26') | |
replaces=('kernel26') | |
#install=${pkgname}.install | |
cd "${srcdir}/linux-${pkgver}" | |
KARCH=arm | |
# get kernel version | |
_kernver="$(make -fMakefile ARCH=${CARCH} kernelrelease)" | |
mkdir -p "${pkgdir}"/{lib/modules,lib/firmware,boot} | |
make INSTALL_MOD_PATH="${pkgdir}" modules_install | |
#cp arch/$KARCH/boot/uImage "${pkgdir}/boot/uImage" | |
cp uImage "${pkgdir}/boot/uImage" | |
# set correct depmod command for install | |
# sed \ | |
# -e "s/KERNEL_NAME=.*/KERNEL_NAME=${_kernelname}/g" \ | |
# -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" \ | |
# -i "${startdir}/${pkgname}.install" | |
# remove build and source links | |
rm -f "${pkgdir}"/lib/modules/${_kernver}/{source,build} | |
# remove the firmware | |
rm -rf "${pkgdir}/lib/firmware" | |
# gzip -9 all modules to safe 100MB of space | |
find "${pkgdir}" -name '*.ko' -exec gzip -9 {} \; | |
} | |
package_xenomai() { | |
pkgdesc="xenomai headers and binaries" | |
provides=('xenomai') | |
conflicts=('xenomai') | |
replaces=('xenomai') | |
mkdir -p "${pkgdir}/usr/xenomai" | |
cd "${srcdir}/xenomai-${_xenover}" | |
make install DESTDIR="${pkgdir}" | |
} | |
package_linux-headers-xenomai-AT91G20() { | |
pkgdesc="Header files and scripts for building modules for linux kernel" | |
provides=('kernel26-headers') | |
conflicts=('kernel26-headers') | |
replaces=('kernel26-headers') | |
mkdir -p "${pkgdir}/lib/modules/${_kernver}" | |
cd "${pkgdir}/lib/modules/${_kernver}" | |
ln -sf ../../../usr/src/linux-${_kernver} build | |
cd "${srcdir}/linux-${pkgver}" | |
install -D -m644 Makefile \ | |
"${pkgdir}/usr/src/linux-${_kernver}/Makefile" | |
install -D -m644 kernel/Makefile \ | |
"${pkgdir}/usr/src/linux-${_kernver}/kernel/Makefile" | |
install -D -m644 .config \ | |
"${pkgdir}/usr/src/linux-${_kernver}/.config" | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include" | |
for i in acpi asm-generic config crypto drm generated linux math-emu \ | |
media net pcmcia scsi sound trace video xen; do | |
cp -a include/${i} "${pkgdir}/usr/src/linux-${_kernver}/include/" | |
done | |
# copy arch includes for external modules | |
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH | |
cp -a arch/$KARCH/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ | |
mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/mach-at91 | |
cp -a arch/$KARCH/mach-at91/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/mach-at91/ | |
# copy files necessary for later builds, like nvidia and vmware | |
cp Module.symvers "${pkgdir}/usr/src/linux-${_kernver}" | |
cp -a scripts "${pkgdir}/usr/src/linux-${_kernver}" | |
# fix permissions on scripts dir | |
chmod og-w -R "${pkgdir}/usr/src/linux-${_kernver}/scripts" | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/.tmp_versions" | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel" | |
cp arch/${KARCH}/Makefile "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/" | |
if [ "${CARCH}" = "i686" ]; then | |
cp arch/${KARCH}/Makefile_32.cpu "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/" | |
fi | |
cp arch/${KARCH}/kernel/asm-offsets.s "${pkgdir}/usr/src/linux-${_kernver}/arch/${KARCH}/kernel/" | |
# add headers for lirc package | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video" | |
cp drivers/media/video/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/" | |
for i in bt8xx cpia2 cx25840 cx88 em28xx et61x251 pwc saa7134 sn9c102; do | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}" | |
cp -a drivers/media/video/${i}/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/${i}" | |
done | |
# add docbook makefile | |
install -D -m644 Documentation/DocBook/Makefile \ | |
"${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile" | |
# add dm headers | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/md" | |
cp drivers/md/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/md" | |
# add inotify.h | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/linux" | |
cp include/linux/inotify.h "${pkgdir}/usr/src/linux-${_kernver}/include/linux/" | |
# add wireless headers | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/" | |
cp net/mac80211/*.h "${pkgdir}/usr/src/linux-${_kernver}/net/mac80211/" | |
# add dvb headers for external modules | |
# in reference to: | |
# http://bugs.archlinux.org/task/9912 | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core" | |
cp drivers/media/dvb/dvb-core/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-core/" | |
# and... | |
# http://bugs.archlinux.org/task/11194 | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/" | |
cp include/config/dvb/*.h "${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/" | |
# add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new | |
# in reference to: | |
# http://bugs.archlinux.org/task/13146 | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/" | |
cp drivers/media/dvb/frontends/lgdt330x.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/" | |
cp drivers/media/video/msp3400-driver.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/" | |
# add dvb headers | |
# in reference to: | |
# http://bugs.archlinux.org/task/20402 | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb" | |
cp drivers/media/dvb/dvb-usb/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/dvb-usb/" | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends" | |
cp drivers/media/dvb/frontends/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/dvb/frontends/" | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners" | |
cp drivers/media/common/tuners/*.h "${pkgdir}/usr/src/linux-${_kernver}/drivers/media/common/tuners/" | |
# add xfs and shmem for aufs building | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs" | |
mkdir -p "${pkgdir}/usr/src/linux-${_kernver}/mm" | |
cp fs/xfs/xfs_sb.h "${pkgdir}/usr/src/linux-${_kernver}/fs/xfs/xfs_sb.h" | |
# copy in Kconfig files | |
for i in `find . -name "Kconfig*"`; do | |
mkdir -p "${pkgdir}"/usr/src/linux-${_kernver}/`echo ${i} | sed 's|/Kconfig.*||'` | |
cp ${i} "${pkgdir}/usr/src/linux-${_kernver}/${i}" | |
done | |
chown -R root.root "${pkgdir}/usr/src/linux-${_kernver}" | |
find "${pkgdir}/usr/src/linux-${_kernver}" -type d -exec chmod 755 {} \; | |
# strip scripts directory | |
find "${pkgdir}/usr/src/linux-${_kernver}/scripts" -type f -perm -u+w 2>/dev/null | while read binary ; do | |
case "$(file -bi "${binary}")" in | |
*application/x-sharedlib*) # Libraries (.so) | |
/usr/bin/strip ${STRIP_SHARED} "${binary}";; | |
*application/x-archive*) # Libraries (.a) | |
/usr/bin/strip ${STRIP_STATIC} "${binary}";; | |
*application/x-executable*) # Binaries | |
/usr/bin/strip ${STRIP_BINARIES} "${binary}";; | |
esac | |
done | |
# remove unneeded architectures | |
rm -rf "${pkgdir}"/usr/src/linux-${_kernver}/arch/{alpha,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,x86,xtensa} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment