嵌入式Linux系统的构建

发表于:2015-8-17 09:20

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:高傲的monkey    来源:51Testing软件测试网采编

#
Linux
分享:
  前期工作:a.配置好tftp服务器:在嵌入式的童年中有介绍
  b.开发板可以pc,linux 三者可以互相ping通
  c.配置好nfs服务器:同样在嵌入式的童年中有介绍
  一.嵌入式linux内核的制作(这里使用的国嵌提供的linux-ok6410内核,附带内核配置文件config-file)
  a.进入内核目录清除原有配置和中间文件:
  make clean
  b.配置内核:
  arm平台:make menuconfig ARCH=arm
  将内核配置文件拷贝到内核目录中config-file
  查看cpu是否对应:system type->arm system type(samsung s3c64xx):对的,保存,退出
  c.编译内核:make uImage ARCH=arm CROSS_COMPILE=arm-linux-(这里需要mkimage工具,将该工具(mkimage在uboot的tools目录中,将它放到交叉编译工具链中/bin 中))             cp uImage ./tftpboot
  tftp uImage 0xc0008000 (将uImage下载到开发板)
  bootm 0xc0008000(启动内核)这里启动会失败,因为还没有挂载根文件系统。
  二.根文件系统制作
  1.   mkdir rootfs (创建根文件系统主目录)
  cd rootfs
  2.创建常见子目录
  mkdir bin dev etc lib proc sbin sys usr mnt tmp var
  mkdir usr/bin usr/lib usr/sbin lib/modules
  3.向目录中添加一些必备的设备文件
  cd rootfs/dev
  mknod -m 666 console c 5 1
  mknod -m 666 null c 1 3
  4.加入配置文件
  tar zxvf etc.gar.gz
  cp etc/* rootfs/etc/ -rf
  三.编译安装内核模块并添加到rootfs中
  make modules ARCH=arm CROSS_COMPILE=arm-linux-
  make modules_install ARCH=arm INSTALL_MOD_PATH=/XXX/rootfs
  cd rootfs/lib/modules/2.6.35-embedsky/kelnel/drivers/scsi   我们能看到一些.ko文件.
  四.配置busybox(精通嵌入式中有提供可以使用的,一些常用的shell指令)
  1.   tar zxvf busybox....tar.gz
  cd busybox ...
  2.  make menuconfig ARCHarm CROSS_COMPILE=arm-linux-
  Busybox setting--->
  build Options--->
  选中“build busybox as a static binary”,静态链接。
  3.  在同一页面--->Cross compiler prefix(arm-linux-).
  4.  installation Options-->
  选中“Don not use/usr”,选中该项可以避免busybox被安装到宿主系统的/usr目录下,破坏宿主系统。......
  Busybox Installation Prefix(/xxx/rootfs)
  该选项表明编译后的busybox的安装位置。
  路径要指对,否则会安装失败(在Don not use/usr同一页面)。
  安装busybox :make install
  cd rootfs/bin
  发现有很多的命令
  根文件系统的制作完成
21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号