1.下载最新版本busybox(busybox-1.14.3.tar.bz2)
2.交叉编译busybox
解压进入其目录,执行:
#make ARCH=arm-linux CROSS_COMPLIE=arm-linux- menuconfig
选择编译成动态库加载模式(Build shared libbusybox)
CROSS_COMPLIER prefix(arm-linux)
ADDitional CFLAGS再填入-march=armv6
指定安装目录(./install)BusyBox installation prefix
后面用到
PS1='[/u@/h/W]/$'
分别表示的是当前用户、主机名和当前目录
busybox settings->busybox library tuning->username completion、fancy shell prompts选上
#make
#make install
3.创建文件系统目录
#mkdir rootfs
#cd rootfs
#mkdir dev etc lib proc sys usr mnt tmp var
#cp (**/busybox/)install ./
#cp -rf (**/busybox/)examples/bootfloppy/etc/ ./
#sudo mknod -m 666 dev/console c 5 1
#sudo mknod -m 666 dev/ttyS0 c 4 64
#sudo mknod -m 666 dev/ttyS1 c 4 65
#sudo mknod -m 666 dev/null c 1 3
#cp /usr/local/arm/4.2.2-eabi/lib/ld* lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libc-2.6.1.* lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libc.so* lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libm.so.6 lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libm-2.6.1.so lib/
#cp /usr/local/arm/4.2.2-eabi/lib/libcrypt* lib/
#cp /usr/local/arm/4.2.2-eabi/usr/lib/libdl.so lib/
#cp /usr/local/arm/4.2.2-eabi/usr/lib/libpthread.so lib/
#cp /usr/local/arm/4.2.2-eabi/usr/lib/libz.so* lib/
#cp /usr/local/arm/4.2.2-eabi/usr/lib/libbz2.so lib/
#cp /usr/local/arm/4.2.2-eabi/usr/arm-unknown-linux-gnueabi/lib/libstdc++.so* lib/
#cd lib
#然后把同样大小的文件删除一个,另一个用ln -s链接出来
类似这样
rm libstdc++.so libstdc++.so.6
ln -s libstdc++.so.6.0.9 libstdc++.so
ln -s libstdc++.so.6.0.9 libstdc++.so.6
strip一下文件系统:
#arm-linux-strip bin/busybox
#arm-linux-strip lib/*
udev配置
1、wget http://www.us.kernel.org/pub/linux/utils/kernel/hotplug/udev-100.tar.bz2
2、tar xjf udev-100.tar.bz2
3、cd udev-100 编辑Makefile,查找CROSS_COMPILE,修改CROSS_COMPILE ?= arm-linux-
4、make
在嵌入式系统里,我们只需要udevd和udevadm就能使udev工作得很好
把生成的udevadm,udevd复制到sbin目录下,然后做下链接
ln -s udevadm udevcontrol
ln -s udevadm udevsettle
ln -s udevadm udevtrigger
修改etc下配置文件
etc/udev/udev.conf
内容可以为空
etc/udev/rules.d目录添加具体规则
-------------------------------------
更改为使用busybox自带的mdev,上面的蓝色部分udev可以不用了
etc/mdev.conf
填入自己的mdev rules
etc/fstab
proc /proc proc defaults 0 0
none /tmp ramfs defaults 0 0
none /var ramfs defaults 0 0
mdev /dev ramfs defaults 0 0
sysfs /sys sysfs defaults 0 0
--------------------------------------------
etc/inittab
::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::ctrlaltdel:/bin/umount -a -r
::shutdown:/bin umount -a -r
::shutdown:/sbin/swapoff -a
--------------------------------------------
etc/profile
# /etc/profile: system-wide .profile file for the Bourne shells
echo
echo -n "Processing /etc/profile... "
# Set search library path
export LD_LIBRARY_PATH=/lib:/usr/lib
# set user path
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
#Set PS1
PS1='[/u@/h/W]/$'
#export PS1="//e[05;32m[$USER@//w//a]//$//e[00;34m"
PATH=$PATH
echo "Set local script:/usr/etc/rc.local...."
source /usr/etc/rc.local
echo "Done"
echo
--------------------------------------------
etc/hostname
arm-linux
--------------------------------------------
etc/init.d/rcS
#! /bin/sh
/bin/mount -a
# devpts doesn't mount since mounting /dev wipes /dev/pts
mkdir /dev/pts
date
echo "S: devpts"
mount -t devpts none /dev/pts
# Udev seems to throw a warning if /dev/null is not found
mknod /dev/null c 1 3
# Set hostname if the corresponding file is found
if test -e /etc/hostname; then
hostname -F /etc/hostname
fi
date
echo "S: udev"
if test -x /sbin/udevd ;
then
echo "Starting udev..." >> /boot.log
/sbin/udevd --daemon
echo "Trigger initial udev events..." >> /boot.log
/sbin/udevtrigger
echo "Waiting for the udevd to settle..." >> /boot.log
/sbin/udevsettle
fi
--------------------------------------
更改为使用mdev,上面蓝色部分可以不要了
/bin/echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
相关推荐
详解制作根文件系统
系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基
udev交叉编译
1. 去http://www.us.kernel.org/pub/linux/utils/kernel/hotplug/ 下载udev软件包: udev-142.tar.gz scratchbox中编译,在外面编译加上--prefix运行时候会出错,会按照编译主机的路径去找配置文件等。。 ../udev-142/configure --host=arm-mv5sft...
debian根文件系统制作
在这里介绍debian根文件系统的构建,builtroot根文件系统的不是不能用,只是这个能更方便的下载一些软件,更好用!提示:以下是本篇文章正文内容,下面案例可供参考。
linux内核编译命令 理解,谢烟客---------Linux之理解内核、内核模块、编译内核
内核组成: uname命令内核:uname,mkinitrd,dracut模块: lsmod,modinfo,depmod,modprobe,insmod,rmmod/proc,sysctl,/sys,/dev,udevadm,hotplug命令内核编译Linux内核组成内核文件 bzImage 位置: /boot/vmlinuz-VERSION-RELEASE内核模块 .ko 位置: ...
6410根文件系统的制作
1.搭建开发环境 开发环境(主要指linux、虚拟机的安装和交叉编译环境的搭建)完全按照mini6410用户手册4.3节操作,在此不再赘述。 2.根文件系统的目录说明 根文件系统是Linux启动的时候使用的第一个文件系统,没有它系统将无法正常的启动,然而在这个根文件系统中又包含了一系列的目录,接下来对这些目录做一个简单的介绍。 bin 存放所有用
从零开始之文件系统制作、根文件系统制作(一、根文件系统制作)
嵌入式根文件系统一般都是使用busybox 1.下载 https://busybox.net/ 我没安装git工具,我就直接下载源码了 我们就下载一个19.2的版本 放入linux系统中某个目录,解压 需改顶层Makefile nfs服务器搭建,参考我的这篇文章 https://blog.youkuaiyun.com/qq_16777851/article/details/8151...
嵌入式Linux根文件系统制作
一个完整的嵌入式Linux系统,包含uboot,Linux内核,根文件系统三个部分。其启动顺序为,在系统刚一上电的时候,先执行uboot,由uboot引导内核,内核启动成功之后挂载根文件系统。根文件系统挂载成功以后,嵌入式Linux系统就启动成功了。在开发板上看到的现象是:用户可以在串口控制台上输入命令与Linux系统进行交互。可以将文件系统在字面上分为俩部分来理解,一部分是文件,一部分是系统。那文件系统是不是可以理解成是组织和管理文件的一个系统呢。
eudev-3.2.7.tar.gz
linux下库。海思3556V200等平台的SDK在编译的时候,需要自己下载第三方的库。此库由开源社区下载,网速很慢,特上传供大家使用。
根文件系统的制作
根文件系统的制作: 在制作根文件的时候,首先我们要在虚拟机上解压一个busybox安装包,来制作文件系统下bin和sbin文件夹下的文件,这文件不能拷贝过来,因为我们这个文件要在arm开发板上使用,使用busybox来制作这些文件,为我们节省了好多时间。 步骤: 1.配置源码: 输入命令:make menuconfig 然后配置一下东西,配置好就编译,输入命令:make 2
udev移植到arm板上
udev移植到arm板上,里面包括编译说明,修改过的配置文件,有不会使用的,请单独联系我。
libstdc++.so.5.0.7和libstdc++.so.6.0.13
libstdc++.so.6.0.13是centos6.8系统中的 libstdc++.so.5.0.7是centos6.7系统中的--linux 7版本以上安装oracle11g使用
JFFS2根文件系统制作
一.根文件系统简介 根文件系统首先是内核启动时所mount的第一个文件系统,内核代码映像文件保存在根文件系统中,系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如inittab、rcS)和服务加载到内存中去运行。 文件系统和内核是完全独立的两个部分。在嵌入式中移植的内核下载到开发板上却没有烧录文件系统,是没有办法真正的启动Linux操作系统的,会出现无法加载文件系统的错误。 ...
使用SAM进行遥感图像语义分割
SAM(Segment Anything Model)的成功表明了以数据为中心的机器学习的重要性。然而,由于遥感(RS)图像注释的困难和高成本,大量有价值的RS数据仍然没有被标记,特别是在像素级。在这项研究中,我们利用SAM和现有的RS物体检测数据集,开发了一个高效的管道来生成大规模的RS分割数据集,称为SAMRS。SAMRS在规模上超过了现有的高分辨率RS分割数据集几个数量级,并提供了物体类别、位置和实例信息,可用于语义分割、实例分割和物体检测,无论是单独还是组合。
制作根文件系统
用的目标板是ARM-Tiny6410,制作根文件
飞行器坐标转换
本文定义的是右手直角坐标系,x−y−zx-y-zx−y−z轴分别为北-天-东。从AAA坐标系到BBB坐标系是分别绕y−z−xy-z-xy−z−x轴,即天-东-北旋转ψ−θ−γψ−θ−γ。如果AAA是惯性系,BBB是机体系,则这三个角度分别为偏航角、俯仰角、横滚角。图1 惯性系到机体系。
不修改MMDetection源码使用自定义数据和模型
以目标检测为例,用非侵入式的模型和MMDetection数据的方法进行配置。也就是不改动MMDetection的任何源码或目录的条件下,使用自定义数据训练自定义模型。
linux 根文件系统制作
昨天花了我几个小时的时间,最后终于把那个根文件系统制作好了~ (一):首先linux根文件系统的制作需要的开发环境。 1:移植Linux内核版本: linux-3.0.1 (只要能用就行) 2:交叉编译工具:arm-linux-gcc 4.3.2(任选) 3:文件系统制作工具:Busybox-1.13.3(任选) 4:etc.tar.gz (二):交叉编译环境的搭建(这一步我在
避坑指南:Unity新版InputSystem在移动端的5个常见问题及解决方案
本文针对Unity新版InputSystem在移动端开发中的常见问题,提供了5个关键解决方案,包括虚拟摇杆灵敏度调节、多点触控冲突处理、按钮反馈延迟优化、手势识别与陀螺仪数据融合以及Android/iOS平台差异处理。这些实战经验帮助开发者高效解决触控适配难题,提升移动游戏体验。
泰山派开发之—Ubuntu20.04根文件系统制作
本节以 Ubuntu 20.04 为例,详细介绍 Ubuntu 根文件系统的制作流程,涵盖系统安装、网络配置、用户管理、打包镜像及调试等内容。其他版本的根文件系统制作流程与此类似,可参考本指南进行移植。
硬件单板类机考复习提纲
6、 功率晶体管低导通损耗时处于的状态(饱和状态、放大状态、截止状态)(放大器的采样频率特性)总结:元器件特性(电阻、电容、二极管、三极管、晶体、晶振、MOS、磁珠等)信号质量问题产生根因(单调性、边沿过缓、毛刺、回沟、抖动等)3、 几种电容容量范围大小(超级电容、钽电容、陶瓷电容、铝电容)66、背板连接器接触设计的接触顺序(先导向、再地针、最后信号针)28、逻辑电平接口的特性(CMOS、TTL、ECL、PECL)76、差分电平(lvpecl、RS-422/485、cml)
K8S部署Java项目(Gitlab CI/CD自动化部署终极版)
每个人都有惰性,但不断学习是好好生活的根本,共勉!
嵌入式linux-根文件系统制作
如嵌入式Linux文件系统中通常不会放置内核源码,因而存的 常不会放置内核源码,因而存的 常不会放置内核源码,因而存放源码的 /usr/src目录是不必要的, 甚至连头文件也不需要,即/usr/include目录也不必要;这里只是拷贝动态链接库。要构建一个可用的Linux根文件系统,需要的二进制和库都不少,完全从零开始也是不现实的,推荐参考其它现有可用的文件系统,在原基础上按需修改;,目录里都是二进制命令工具,这还不足以构成 一个可用的根文件系统,必须进行其它完善工作,才能构建一个可用的根文件系统。
FlashBootloader01-基于UDS的Flash Bootloader【架构篇】
文章目录1 Flash Bootloader的依赖项2 Flash Bootloader中使用的UDS的主要功能3 Flash Bootloader更新固件3.1 初始化MCU3.2 刷写流程 1 Flash Bootloader的依赖项 通常Flash Bootloader由以下四方面组成: UDS协议 上位机「编写Bootloader Sequence」 通信驱动(如CAN ) Flash Driver 2 Flash Bootloader中使用的UDS的主要功能 1. 10 02服务 客户端
1万+



被折叠的 条评论
为什么被折叠?



