1.重新制作跟文件系统启动还是发生如下错误
[ 1.955000] request_module: runaway loop modprobe binfmt-464c
//该错误是由于没有配置交叉编译工具
配置busybox时,在配置中发现busybox setting->build options->
在cross compile prefix中写入arm-none-linux-gnueabi-
[ 1.965000] Failed to execute /linuxrc (error -8). Attempting defaults...
[ 1.990000] request_module: runaway loop modprobe binfmt-464c
[ 2.000000] Starting init: /sbin/init exists but couldn't execute it (error -8)
[ 2.020000] request_module: runaway loop modprobe binfmt-464c
[ 2.030000] Starting init: /bin/sh exists but couldn't execute it (error -8)
[ 2.040000] Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/init.txt for guidance.
2.加载文件系统镜像到内存启动参数设置为如下:
//这个手册没提到
setenv bootargs root=/dev/ram0 init=/linuxrc console=ttySAC2,115200
setenv bootcmd tftp 41000000 uImage\;tftp 42000000 exynos4412-fs4412.dtb\;tftp 43000000 ramdisk.img\;bootm 41000000 43000000 42000000
3.制作linux文件系统步骤:
a.从http://busybox.net/downloads/下载busybox
b.解压busybox
c. cd busybox
make menuconfig
||
Busybox Settings --->
Build Options --->
[*] Build BusyBox as a static binary (no shared libs)
[ ] Force NOMMU build
[ ] Build with Large File Support (for accessing files > 2 GB)
(arm-none-linux-gnueabi-) Cross Compiler prefix//这里设置交叉编译工具
() Additional CFLAGS
make
make install
cd _install
ls(发现有如下目录)
||
bin linuxrc sbin usr
mkdir dev etc mnt proc var tmp sys root
添加库:
toolchain-4.5.1-farsight.tar.bz2
||(题外话)
Toolchain 即工具链,一套流程里面用到的每个工具和相关的库组成的集合,就称为工具链(tool chain)。
||
四种工具
||
cross assembler
cross compile
cross library
cross link
Toolchain 一般内附有程式编译器(compiler),如GCC,可以进行程式编译、或跨平台编译(cross compile)工作。
目前的工具键软件有 RealWorks toolchain、GNU toolchain。微软公司的 Visual Studio 2005 是 Windows CE 的 toolchain。
交叉编译(cross compile)
交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,
比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,
编译得到的程序在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行,
虽然两个平台用的都是Linux系统。这种方法在异平台移植和嵌入式开发时非常有用。
相对与交叉编译,平常做的编译叫本地编译,也就是在当前平台编译,编译得到的程序也是在本地执行。
tar -xjf toolchain-<