summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flash-memory/flash-filesystems/Makefile9
-rw-r--r--flash-memory/flash-filesystems/pres_flashfilesystems_en.tex170
2 files changed, 179 insertions, 0 deletions
diff --git a/flash-memory/flash-filesystems/Makefile b/flash-memory/flash-filesystems/Makefile
new file mode 100644
index 0000000..4663d52
--- /dev/null
+++ b/flash-memory/flash-filesystems/Makefile
@@ -0,0 +1,9 @@
+all:
+ for pdf in `ls -1 *.tex` ; do \
+ pdflatex $$pdf; \
+ pdflatex $$pdf; \
+ done
+
+clean:
+ rm -f *.aux *.log *.pdf *.log *.snm *.toc *.vrb *.nav *.out
+
diff --git a/flash-memory/flash-filesystems/pres_flashfilesystems_en.tex b/flash-memory/flash-filesystems/pres_flashfilesystems_en.tex
new file mode 100644
index 0000000..2708766
--- /dev/null
+++ b/flash-memory/flash-filesystems/pres_flashfilesystems_en.tex
@@ -0,0 +1,170 @@
+\documentclass[11pt]{beamer}
+
+%\usepackage{ngerman}
+\usepackage{times}
+\usepackage{graphicx}
+\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
+\usepackage{amsmath,amssymb}
+\usepackage[latin1]{inputenc}
+\usepackage{listings,color}
+\definecolor{lbcolor}{RGB}{255,210,150}
+\lstset{
+ language=C,
+ numbers=left,
+ stepnumber=1,
+ numbersep=5pt,
+ numberstyle=\tiny,
+ breaklines=true,
+ breakautoindent=true,
+ postbreak=\space,
+ tabsize=2,
+ basicstyle=\ttfamily\footnotesize,
+ showspaces=false,
+ showstringspaces=false,
+ extendedchars=true,
+ backgroundcolor=\color{lbcolor},
+ keywordstyle=\bf ,
+ commentstyle=\color{green},
+ stringstyle=\color{red}
+}
+
+\mode<presentation>
+{
+ \usetheme{linutronix}
+}
+
+% on the following slides, include icon in the left sidebar
+\def\lximg{/usr/share/lx/icons/fueller.png}
+
+\title{Creating Flashfilesystems}
+\institute{Linutronix GmbH}
+
+\begin{document}
+
+\frame{ \titlepage }
+
+% stop displaying 'fueller.png' on the following slides
+\def\lximg{none}
+
+\begin{frame}[fragile]
+\frametitle{Emulating flash devices}
+\begin{lstlisting}
+$ sudo modprobe nandsim
+$ cat /proc/mtd
+dev: size erasesize name
+mtd0: 08000000 00004000 "NAND simulator partition 0"
+$ dmesg
+[...]
+[ 128.718421] flash size: 128 MiB
+[ 128.718423] page size: 512 bytes
+[ 128.718425] OOB area size: 16 bytes
+[ 128.718426] sector size: 16 KiB
+[...]
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Using JFFS2}
+\begin{lstlisting}
+# Create JFFS2 image
+$ mkfs.jffs2 -e 131072 \
+ -d source_directory \
+ -o jffs2.img
+# Erase flash partition
+$ flash_erase -j /dev/mtd0 0 0
+# Write jffs2 image
+$ nandwrite /dev/mtd0 jffs2.img
+# Mounting the image
+$ mount /dev/mtdblock0 /mnt
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+Kernelparameters:
+\begin{verbatim}
+root=/dev/mtdblock0 rootfstype=jffs2
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Using UBIFS}
+\begin{lstlisting}
+# 1) Attaching UBI to an MTD device
+modprobe ubi
+ubiattach ubiattach -m 0
+# or
+modprobe ubi mtd=0
+# 2) Gathering some information
+$ dmesg
+UBI: attaching mtd0 to ubi0
+UBI: physical eraseblock size: 16384 bytes (16 KiB)
+UBI: logical eraseblock size: 15872 bytes
+UBI: smallest flash I/O unit: 512
+UBI: sub-page size: 256
+UBI: VID header offset: 256 (aligned 256)
+UBI: data offset: 512
+[...]
+# 3) Creating a volume
+$ ubimkvol /dev/ubi0 -N myvolume -s 64MiB
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Using UBIFS}
+\begin{lstlisting}
+# 4) Creating an UBIFS image
+$ mkfs.ubifs -r test -m 512 -e 15872 \
+ -c 8450 -o ubifs.img
+# 5) Writing the image
+$ ubiupdatevol /dev/ubi0_0 ubifs.img
+# 6) Mounting UBIFS
+$ mount -t ubifs ubi0:myvolume /mnt/
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{UBI: Create flash images}
+ubinize.cfg:
+\begin{verbatim}
+[ubifs]
+mode=ubi
+image=ubifs.img
+vol_id=0
+vol_size=64MiB
+vol_type=dynamic
+vol_name=myvolume
+vol_flags=autoresize
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{UBI: Create flash images}
+\begin{lstlisting}
+# 1) Create the ubi image
+ubinize -o ubi.img -m 512 -s 256 -p 16384 ubinize.cfg
+# 2) erase the flash partition
+flash_erase /dev/mtd0 0 0
+# 3) Write the image
+nandwrite /dev/mtd0 ubi.img
+# 4) Attach UBI
+ubiattach -m 0
+# 5) Mount UBIFS
+mount -t ubifs ubi0:myvolume /mnt/
+\end{lstlisting}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{UBIFS as a rootfilesystem}
+Kernelparameters:
+\begin{verbatim}
+ubi.mtd=0 root=ubi0:myvolume rootfstype=ubifs
+\end{verbatim}
+\end{frame}
+
+\section*{sources}
+\begin{frame}
+\begin{thebibliography}{1}
+\bibitem{UBIFS} http://mytechrants.wordpress.com/2010/01/20/ubiubifs-on-nandsim/
+\end{thebibliography}
+\end{frame}
+\end{document}