arm-linux根目录文件的创建以及交叉工具链的安装
2013-09-11 17:38
260 查看
关于交叉工具链的安装:
将工具文件解压到某一个文件夹下(一般解压到 /opt 中),然后找到解压下的bin文件夹下的可执行文件。
编辑 /etc/profile ,加入例如这一行:pathmunge /opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/ 。
再输入命令source /etc/profile
那么就可以直接执行 bin下的文件了,可以直接输入命令比如arm-linux-gcc用以编译文件。
关于busybox的安装:
此工具用于制作根目录文件下的用于命令输入的可执行文件,即安装完成之后它的文件会出现了 /bin/ 下,如果根目录为rootfs则会在rootfs/bin/下(需要手动设置)。
进入解压后的busybox的文件夹下执行 make menuconfig;
设置build options下设置成静态二进制文件,并且设置交叉编译前缀如arm-linux-;
设置installation options下不要使用/usr(该选项可以避免busybox被安装到宿主系统的/usr下,破坏宿主系统),并且设置busybox 的安装文件夹(/xxx/rootfs);
其他设置可以按照需求选择
保存设置之后:
make ARCH=arm CROSS_COMPILE=arm-linux-;
make install;
安装完成之后进入安装目录下的 bin 文件夹可以看到多出的链接文件。
嵌入式LINUX系统由Linux内核和根文件系统两部分构成,缺一不可。
制作嵌入式Linux所需的文件系统:
A、创建目录和文件
B、为创建好的目录和文件建立管理数据
A、创建目录和文件
1、创建根文件系统的目录
mkdir rootfs
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
2、创建设备文件
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
cd ..
3、安装/etc(此处为其教材中自带的etc文件)
tar etc.tar.gz -C /xxx/rootfs
4、编译内核模块
进入Linux内核目录
make modules ARCH=arm CROSS_COMPILE=arm-linux-
5、安装内核模块
make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs
安装完成之后会在 /xxx/rootfs/lib/modules会有相应的内核模块文件。
6、配置busybox(用于ls等命令)
如上述 关于busybox的安装 ,正确安装完成之后在 /xxx/rootfs/bin/下会有相应的链接文件。
B、为创建好的目录和文件建立管理数据
接下来使用initramfs制作根文件系统并且配置内核使用initamfs。
1、
在内核文件夹下运行 make menuconfig ARCH=arm
在gernerate setup中选中Initial RAM filesystem and RAM disk 并且输入安装路径如 xxx/rootfs/。
2、
进入制作好的根文件系统中(xxx/rootfs/)执行 ln -s ./bin/busybox init。//姑且认为是初始化的时候用。
3、
重新编译内核
make zImage ARCH=arm CROSS_COMPILE=arm-linux-
然后将内核烧入即可操作基于ARM的文件系统。
注:以上过程编译内核所用的 .config 文件为天嵌自带的文件。
配置内核使用NFS作为根文件系统启动:
首先取消gernerate setup中原本选中的Initial RAM filesystem and RAM disk 并将File System中的Network File Systems选中并且注意其中的NFS client support和Root file system on NFS选中,并编译内核。
NFS实际上就是PC主机的文件开放给下位机,下位机通过NFS来访问主机。
编辑/etc/exports,如/home/zbf/kernel/linux-2.6.30.4/rootfs/ 192.168.1.*(rw,sync,no_root_squash)之后,重新启动。
service nfs restart
此时上位机的网络设置已经完成。
于下位机,烧入内核,并设置U-BOOT中的相关NFS的设置(如IP地址,共享目录等),启动后即可访问主机的目录。
将工具文件解压到某一个文件夹下(一般解压到 /opt 中),然后找到解压下的bin文件夹下的可执行文件。
编辑 /etc/profile ,加入例如这一行:pathmunge /opt/EmbedSky/crosstools_3.4.5_softfloat/gcc-3.4.5-glibc-2.3.6/arm-linux/bin/ 。
再输入命令source /etc/profile
那么就可以直接执行 bin下的文件了,可以直接输入命令比如arm-linux-gcc用以编译文件。
关于busybox的安装:
此工具用于制作根目录文件下的用于命令输入的可执行文件,即安装完成之后它的文件会出现了 /bin/ 下,如果根目录为rootfs则会在rootfs/bin/下(需要手动设置)。
进入解压后的busybox的文件夹下执行 make menuconfig;
设置build options下设置成静态二进制文件,并且设置交叉编译前缀如arm-linux-;
设置installation options下不要使用/usr(该选项可以避免busybox被安装到宿主系统的/usr下,破坏宿主系统),并且设置busybox 的安装文件夹(/xxx/rootfs);
其他设置可以按照需求选择
保存设置之后:
make ARCH=arm CROSS_COMPILE=arm-linux-;
make install;
安装完成之后进入安装目录下的 bin 文件夹可以看到多出的链接文件。
嵌入式LINUX系统由Linux内核和根文件系统两部分构成,缺一不可。
制作嵌入式Linux所需的文件系统:
A、创建目录和文件
B、为创建好的目录和文件建立管理数据
A、创建目录和文件
1、创建根文件系统的目录
mkdir rootfs
cd rootfs
mkdir bin dev etc lib proc sbin sys usr mnt tmp var
mkdir usr/bin usr/lib usr/sbin lib/modules
2、创建设备文件
cd dev/
mknod -m 666 console c 5 1
mknod -m 666 null c 1 3
cd ..
3、安装/etc(此处为其教材中自带的etc文件)
tar etc.tar.gz -C /xxx/rootfs
4、编译内核模块
进入Linux内核目录
make modules ARCH=arm CROSS_COMPILE=arm-linux-
5、安装内核模块
make modules_install ARCH=arm INSTALL_MOD_PATH=/xxx/rootfs
安装完成之后会在 /xxx/rootfs/lib/modules会有相应的内核模块文件。
6、配置busybox(用于ls等命令)
如上述 关于busybox的安装 ,正确安装完成之后在 /xxx/rootfs/bin/下会有相应的链接文件。
B、为创建好的目录和文件建立管理数据
接下来使用initramfs制作根文件系统并且配置内核使用initamfs。
1、
在内核文件夹下运行 make menuconfig ARCH=arm
在gernerate setup中选中Initial RAM filesystem and RAM disk 并且输入安装路径如 xxx/rootfs/。
2、
进入制作好的根文件系统中(xxx/rootfs/)执行 ln -s ./bin/busybox init。//姑且认为是初始化的时候用。
3、
重新编译内核
make zImage ARCH=arm CROSS_COMPILE=arm-linux-
然后将内核烧入即可操作基于ARM的文件系统。
注:以上过程编译内核所用的 .config 文件为天嵌自带的文件。
配置内核使用NFS作为根文件系统启动:
首先取消gernerate setup中原本选中的Initial RAM filesystem and RAM disk 并将File System中的Network File Systems选中并且注意其中的NFS client support和Root file system on NFS选中,并编译内核。
NFS实际上就是PC主机的文件开放给下位机,下位机通过NFS来访问主机。
编辑/etc/exports,如/home/zbf/kernel/linux-2.6.30.4/rootfs/ 192.168.1.*(rw,sync,no_root_squash)之后,重新启动。
service nfs restart
此时上位机的网络设置已经完成。
于下位机,烧入内核,并设置U-BOOT中的相关NFS的设置(如IP地址,共享目录等),启动后即可访问主机的目录。
相关文章推荐
- Linux创建用户后涉及到的文件及目录以及完全删除用户
- PHP 创建文件(文件夹)以及目录操作代码
- java创建多级目录以及文件
- arm-linux-gcc/ncurses的安装和使用,arm-linux-gcc: 没有那个文件或目录
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- 64位ubuntu14.04安装交叉编译器arm-linux-gcc出现没有那个文件或目录
- linux进入一个目录以及在目录中创建文件所需要的权限
- MySQL 5.7.20安装目录下自定义创建my.ini文件
- 安装交叉编译工具,执行arm-linux-gcc –v命令出现提示找不到该文件或目录?解决方法
- PHP 创建文件(文件夹)以及目录操作代码
- Linux中进入一个目录需要的权限,以及创建文件
- PHP创建文件(夹)以及目录操作
- PHP创建文件(夹)以及目录操作
- 阿里云安装LNMP以及更改网站文件和MySQL数据目录
- android SD卡目录下创建、复制文件夹以及文件
- 创建目录以及文件写入
- 解决安装arm-linux-gcc提示未找到安装目录或文件
- 安装交叉编译工具,执行arm-linux-gcc–v命令出现提示找不到该文件或目录?解决方法
- Windows 如何在创建指定目录以及复制文件