meta-nmrouter: initial commit with a simple test image
This commit contains a valid machine configuration and a recipe for creating a NetModule router image.
This commit is contained in:
commit
d8eed29e30
|
|
@ -0,0 +1,15 @@
|
|||
# We have a conf and classes directory, add to BBPATH
|
||||
BBPATH .= ":${LAYERDIR}"
|
||||
|
||||
# We have recipes-* directories, add to BBFILES
|
||||
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
|
||||
|
||||
BBFILE_COLLECTIONS += "nrhw15"
|
||||
BBFILE_PATTERN_nrhw15 = "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_nrhw15 = "1"
|
||||
|
||||
# This should only be incremented on significant changes that will
|
||||
# cause compatibility issues with other layers
|
||||
LAYERVERSION_nrhw15 = "1"
|
||||
|
||||
LAYERDEPENDS_nrhw15 = "core"
|
||||
|
|
@ -0,0 +1 @@
|
|||
# CONFIG_RFKILL is not set
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
# Example use of configuration fragments for busybox, which uses the same
|
||||
# mechanism as the linux-yocto kernel recipe.
|
||||
#
|
||||
# The entries here will override any entries in the base busybox recipe
|
||||
#
|
||||
# More details can be found in the Kernel Dev Manual
|
||||
# http://www.yoctoproject.org/docs/current/kernel-dev/kernel-dev.html#changing-the-configuration
|
||||
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI += " \
|
||||
file://no_rfkill.cfg \
|
||||
"
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
SUMMARY = "Memory access tool"
|
||||
DESCRIPTION = "Development tool to access memory addresses via /dev/mem."
|
||||
AUTHOR = "Jan-Derk Bakker (jdb@lartmaker.nl)"
|
||||
HOMEPAGE = "http://www.lartmaker.nl/lartware/port/devmem2.c"
|
||||
|
||||
SECTION = "developement"
|
||||
LICENSE = "GPLv2+"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
|
||||
PR = "r0"
|
||||
|
||||
SRC_URI = "file://devmem2.c"
|
||||
|
||||
S = "${WORKDIR}"
|
||||
|
||||
do_compile() {
|
||||
${CC} devmem2.c -o devmem2
|
||||
}
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${bindir}
|
||||
install -m 0755 devmem2 ${D}${bindir}
|
||||
}
|
||||
|
|
@ -0,0 +1,132 @@
|
|||
/*
|
||||
* devmem2.c: Simple program to read/write from/to any location in memory.
|
||||
*
|
||||
* Copyright (C) 2000, Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl)
|
||||
*
|
||||
*
|
||||
* This software has been developed for the LART computing board
|
||||
* (http://www.lart.tudelft.nl/). The development has been sponsored by
|
||||
* the Mobile MultiMedia Communications (http://www.mmc.tudelft.nl/)
|
||||
* and Ubiquitous Communications (http://www.ubicom.tudelft.nl/)
|
||||
* projects.
|
||||
*
|
||||
* The author can be reached at:
|
||||
*
|
||||
* Jan-Derk Bakker
|
||||
* Information and Communication Theory Group
|
||||
* Faculty of Information Technology and Systems
|
||||
* Delft University of Technology
|
||||
* P.O. Box 5031
|
||||
* 2600 GA Delft
|
||||
* The Netherlands
|
||||
*
|
||||
*
|
||||
* 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 <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <signal.h>
|
||||
#include <fcntl.h>
|
||||
#include <ctype.h>
|
||||
#include <termios.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#define FATAL do { fprintf(stderr, "Error at line %d, file %s (%d) [%s]\n", \
|
||||
__LINE__, __FILE__, errno, strerror(errno)); exit(1); } while(0)
|
||||
|
||||
#define MAP_SIZE 4096UL
|
||||
#define MAP_MASK (MAP_SIZE - 1)
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
int fd;
|
||||
void *map_base, *virt_addr;
|
||||
unsigned long read_result, writeval;
|
||||
off_t target;
|
||||
int access_type = 'w';
|
||||
|
||||
if(argc < 2) {
|
||||
fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
|
||||
"\taddress : memory address to act upon\n"
|
||||
"\ttype : access operation type : [b]yte, [h]alfword, [w]ord\n"
|
||||
"\tdata : data to be written\n\n",
|
||||
argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
target = strtoul(argv[1], 0, 0);
|
||||
|
||||
if(argc > 2)
|
||||
access_type = tolower(argv[2][0]);
|
||||
|
||||
|
||||
if((fd = open("/dev/mem", O_RDWR | O_SYNC)) == -1) FATAL;
|
||||
printf("/dev/mem opened.\n");
|
||||
fflush(stdout);
|
||||
|
||||
/* Map one page */
|
||||
map_base = mmap(0, MAP_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, target & ~MAP_MASK);
|
||||
if(map_base == (void *) -1) FATAL;
|
||||
printf("Memory mapped at address %p.\n", map_base);
|
||||
fflush(stdout);
|
||||
|
||||
virt_addr = map_base + (target & MAP_MASK);
|
||||
switch(access_type) {
|
||||
case 'b':
|
||||
read_result = *((unsigned char *) virt_addr);
|
||||
break;
|
||||
case 'h':
|
||||
read_result = *((unsigned short *) virt_addr);
|
||||
break;
|
||||
case 'w':
|
||||
read_result = *((unsigned long *) virt_addr);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Illegal data type '%c'.\n", access_type);
|
||||
exit(2);
|
||||
}
|
||||
printf("Value at address 0x%lX (%p): 0x%lX\n", target, virt_addr, read_result);
|
||||
fflush(stdout);
|
||||
|
||||
if(argc > 3) {
|
||||
writeval = strtoul(argv[3], 0, 0);
|
||||
switch(access_type) {
|
||||
case 'b':
|
||||
*((unsigned char *) virt_addr) = writeval;
|
||||
read_result = *((unsigned char *) virt_addr);
|
||||
break;
|
||||
case 'h':
|
||||
*((unsigned short *) virt_addr) = writeval;
|
||||
read_result = *((unsigned short *) virt_addr);
|
||||
break;
|
||||
case 'w':
|
||||
*((unsigned long *) virt_addr) = writeval;
|
||||
read_result = *((unsigned long *) virt_addr);
|
||||
break;
|
||||
}
|
||||
printf("Written 0x%lX; readback 0x%lX\n", writeval, read_result);
|
||||
fflush(stdout);
|
||||
}
|
||||
|
||||
if(munmap(map_base, MAP_SIZE) == -1) FATAL;
|
||||
close(fd);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,60 @@
|
|||
inherit core-image
|
||||
|
||||
SUMMARY = "Test image"
|
||||
|
||||
UBOOT_CONFIG = "sdcard"
|
||||
|
||||
KERNEL_IMAGETYPE = "uImage"
|
||||
|
||||
IMAGE_FSTYPES_append = " tar.gz "
|
||||
|
||||
IMAGE_FEATURES += " \
|
||||
tools-debug \
|
||||
"
|
||||
|
||||
IMAGE_FEATURES += " \
|
||||
package-management \
|
||||
ssh-server-openssh \
|
||||
"
|
||||
|
||||
BENCH_TOOLS += " \
|
||||
tcpdump \
|
||||
lrzsz \
|
||||
lmbench \
|
||||
dbench \
|
||||
memtester \
|
||||
nbench-byte \
|
||||
tiobench \
|
||||
iozone3 \
|
||||
iperf \
|
||||
strongswan \
|
||||
"
|
||||
|
||||
BENCH_TOOLS_cortexa9hf-neon_append += " cpuburn-neon "
|
||||
|
||||
IMAGE_INSTALL += " \
|
||||
linux-firmware \
|
||||
linux-firmware-ath9k \
|
||||
hostapd \
|
||||
iw \
|
||||
crda \
|
||||
wpa-supplicant \
|
||||
openssh-sftp-server \
|
||||
bash \
|
||||
iproute2 \
|
||||
ethtool \
|
||||
i2c-tools \
|
||||
lrzsz \
|
||||
devmem2 \
|
||||
openvpn \
|
||||
iptables \
|
||||
pciutils \
|
||||
kernel-modules \
|
||||
${BENCH_TOOLS} \
|
||||
"
|
||||
|
||||
IMAGE_INSTALL_cortex9hf-neon_append = " kernel-devicetree "
|
||||
IMAGE_INSTALL_cortex9hf_append = " kernel-devicetree "
|
||||
|
||||
LICENSE = "BSD"
|
||||
|
||||
Loading…
Reference in New Issue