Last active
July 17, 2016 10:19
-
-
Save danielinux/7609e4615c11e6ba44c83cd1540bda5e to your computer and use it in GitHub Desktop.
How to run frosted on Qemu
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
# | |
# 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 | |
# |
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
# | |
# 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 |
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
# 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