Skip to content

Instantly share code, notes, and snippets.

@danielinux
Last active July 17, 2016 10:19
Show Gist options
  • Save danielinux/7609e4615c11e6ba44c83cd1540bda5e to your computer and use it in GitHub Desktop.
Save danielinux/7609e4615c11e6ba44c83cd1540bda5e to your computer and use it in GitHub Desktop.
How to run frosted on Qemu
#
# Automatically generated file; DO NOT EDIT.
# FROSTED Kernel Configuration
#
#
# Platform Selection
#
ARCH_LM3S=y
# ARCH_LPC17XX is not set
# ARCH_STM32F4 is not set
# ARCH_STM32F7 is not set
# ARCH_LM3S6965 is not set
ARCH_LM3SVIRT=y
FLASH_SIZE_1MB=y
RAM_SIZE_256KB=y
MACH_LM3SVIRT=y
#
# Kernel Configuration
#
KFLASHMEM_SIZE=128
KRAMMEM_SIZE=64
#
# Debugging options
#
# KLOG is not set
# HARDFAULT_DBG is not set
# STRACE is not set
# TASK_STACK_SIZE_1K is not set
TASK_STACK_SIZE_2K=y
# TASK_STACK_SIZE_4K is not set
# TASK_STACK_SIZE_8K is not set
#
# Filesystems
#
SYSFS=y
MEMFS=y
XIPFS=y
FATFS=y
FAT32=y
FAT16=y
#
# Sockets
#
# SOCK_UNIX is not set
# SOCK_INET is not set
# TCPIP_MEMPOOL_YN is not set
# PICOTCP is not set
#
# Device Drivers
#
DEVNULL=y
DEVUART=y
USART_0=y
# USART_1 is not set
# USART_2 is not set
#
# Power Management
#
#
# Power Management requires CPU Timer support
#
#
# Automatically generated file; DO NOT EDIT.
# FROSTED Userspace content selection
#
#
# Libraries
#
# LIB_WOLFSSL is not set
# LIB_MONGOOSE is not set
#
# Applications
#
#
# Base binary utils
#
APP_INIT=y
APP_IDLING=y
APP_FRESH=y
APP_CAT=y
APP_ECHO=y
APP_LS=y
APP_TOUCH=y
APP_RM=y
APP_KILL=y
# APP_TRUE is not set
# APP_FALSE is not set
# APP_LN is not set
APP_MKDIR=y
APP_MOUNT=y
# APP_PLAY is not set
# APP_WC is not set
# APP_HEAD is not set
# APP_TAIL is not set
# APP_YES is not set
APP_SLEEP=y
APP_UPTIME=y
# APP_KLOGD is not set
# APP_GDBSERVER is not set
APP_REBOOT=y
APP_RENICE=y
# APP_CUT is not set
# APP_GREP is not set
#
# Networking utils
#
# APP_IFCONFIG is not set
# APP_ROUTE is not set
# APP_HOST is not set
# APP_TELNETD is not set
# APP_NETCAT is not set
#
# Hardware utils
#
# APP_BUSYLOOP is not set
# APP_MORSE is not set
# APP_RANDOM is not set
# APP_SENSOR is not set
# APP_FBTEST is not set
# APP_GPIOCTL is not set
#
# Games
#
# APP_DOOM is not set
# APP_DICE is not set
# Create dir
mkdir frosted-qemu
cd frosted-qemu
# Clone frosted
git clone git@github.com:insane-adding-machines/frosted.git
cd frosted
git submodule init
git submodule update
cd frosted-userland
git submodule init
git submodule update
cd ../..
# get the latest toolchain
wget https://github.com/insane-adding-machines/crosstool-ng/releases/download/v16.07.003/arm-frosted-eabi-5.3.0_16.07.003.tar.bz2
tar xjf arm-frosted-eabi-5.3.0_16.07.003.tar.bz2
export PATH=`pwd`/arm-frosted-eabi/bin:$PATH
# Ensure that pre-requisites to compile qemu are in place. On a debian system this is:
apt-get build-dep qemu
# Get modified qemu
git clone git@github.com:insane-adding-machines/qemu.git
cd qemu
./configure --prefix=`pwd`/../qemu-bin --target-list=arm-softmmu
make
make install
cd ..
export PATH=`pwd`/qemu-bin/bin:$PATH
# Back to the frosted directory
cd frosted
# Copy the included frosted-kernel.config to kconfig/.config
wget https://git.io/vKgD8 -O kconfig/.config
# Copy the included frosted-userland.config to frosted-userland/kconfig/.config
wget https://git.io/vKgDR -O frosted-userland/kconfig/.config
# Compile frosted
make
# Execute with qemu
make qemu2
# As alternative: start qemu and wait for the debugger...
make qemu
# From another console run arm-none-eabi-gdb and attach to localhost:3333 to start debugging
# You can use the following settings in your local .gdbinit script:
#
tar ext :3333
layout src
file kernel.elf
stepi
focus c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment