Ubuntu for Arm根文件系统制作
UbuntuARM更改为国内源
UbuntuARM更改为国内源关键词:ubuntu arm ubuntu-ports 国内源镜像阿⾥源 apt apt-get install update 0%working 速度慢 rk3399 开发板写在前⾯这⼏次写博客客都是有很⼤的戾⽓!算了,认真做事,认真记录吧。
要乐观⼀点少年。
arm ubuntu开发板的apt的库和普通ubuntu的库是不⼀样的,arm的是ubuntu-ports库。
百度也是垃圾,搜半天也搜不到⼀个说阿⾥源的ubuntu-ports的设置⽅法。
之前⽤USTC中科⼤的ubuntu-ports,不知道咋回事,apt-get update后⼀直卡在0%working,晕。
简单来说,就是你要换⼀个源了,我不知道是这个源有问题,还是我开发板有问题,还是线路有问题。
其实你发现,很多镜像⽹站,都只有ubuntu源的设置说明,没有ubuntu-ports的设置说明。
只有USTC都有,然⽽我⽤不了。
正⽂⾥⾯有ubuntu源的设置说明以ubuntu16.04为例:ubuntu 16.04 配置如下ubuntu 16.04 配置如下deb /ubuntu/ xenial maindeb-src /ubuntu/ xenial maindeb /ubuntu/ xenial-updates maindeb-src /ubuntu/ xenial-updates maindeb /ubuntu/ xenial universedeb-src /ubuntu/ xenial universedeb /ubuntu/ xenial-updates universedeb-src /ubuntu/ xenial-updates universedeb /ubuntu/ xenial-security maindeb-src /ubuntu/ xenial-security maindeb /ubuntu/ xenial-security universedeb-src /ubuntu/ xenial-security universe所以只要将ubuntu改成ubuntu-ports即可,这是我观察USTC的设置说明总结的,已经在我的板⼦上实验成功。
armbian 分区格式
armbian 分区格式
Armbian是一种基于Debian或Ubuntu的操作系统,专门设计用于ARM架构的单板计算机,如树莓派和橙派。
在Armbian上,分区格式一般遵循标准的Linux分区格式,通常采用的是ext4文件系统。
在Armbian中,通常会有一个根分区(/),一个引导分区(/boot)以及可能的其他分区,如交换分区(swap)或数据分区。
这些分区的格式一般是ext4,这是一种成熟稳定的Linux文件系统格式,提供了良好的性能和稳定性。
除了ext4之外,有时候也会使用其他文件系统格式,比如FAT32格式的引导分区,用于存放启动所需的文件。
但总体来说,大多数Armbian系统都会采用ext4作为默认的分区格式。
需要注意的是,分区格式的选择应当考虑到系统的需求以及硬件的兼容性,不同的文件系统格式有着不同的特点和适用场景,因此在选择分区格式时需要权衡各方面的因素。
在安装Armbian系统时,一般会有默认的分区格式设置,用户可以根据实际需求进行调整。
总的来说,Armbian系统的分区格式一般采用ext4作为主要的文件系统格式,同时也可能会包括其他格式的分区,以满足系统的特定需求。
Ubuntu下构建内核源码树的方法
Ubuntu 下构建内核源码树网上好多文章,他大爷的都是转来转去,每一篇中用的。
索性还是自己整理一篇吧。
网上牛人多,但是小白问题更多,更何况咱们这号不入门的,因为最近学内核,要写模块,模块要在源码树下编译安装,又习惯了Ubuntu的OS,不忍转向他方,还是好好摆置摆置它吧,找的几篇文章不怎么好用,下边开始吧。
PS:当前系统是上一篇配置SSH博文里Jun从Ubuntu9.04更新到Ubuntu 10.04的系统。
这个网上都这么装,就这样来吧。
1.安装编译内核所需要的软件build-essential、autoconf、automake、cvs、subversion$ sudo apt-get install build-essential kernel-package libncurses5-devlibncurses5这个软件包在使用menuconfig配置内核的时候会用到。
2.进入/usr/src ,在这里构建源码树,我们用下面指令查看可用的源码包:$ sudo apt-cache search linux-source我的提示是:linux-source - Linux kernel source with Ubuntu patcheslinux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patches3.那么就让我们来下载2.6.32版的kernel,通过下边命令:$ sudo apt-get install linux-source-2.6.32等待下载完成。
4.下载完成后,我们进入/usr/src ,默认会在这里,看看他的目录结构:(ls 一下)我的显示可以看到有两对儿Linux-header-2.6.* 的目录,你的应该是只有一对儿,之所以这样是以为我的是从9.04更新到10.4,Ubuntu会保留历史版本,不用管它,记住,这里linux-headers-2.6.32-34-generic 、linux-headers-2.6.32-34、linux-source-2.6.32.tar.bz2 ,这才是我们用到的。
ramdisk根文件系统制作
制作根文件系统有两种方法1、利用开发板提供的映像文件制作ramdisk2、利用busybox制作根文件系统(制作过程复杂)采用第一种方法制作需要的ramdisk1、拷贝已有的uramdisk.image.gz 到新建的tmp/下,cp uramdisk.image.gz tmp/2、去掉mkimage生成的64 bytes 的文件头,生成新的ramdisk.image.gz$ dd if=uramdisk.image.gz of=ramdisk.image.gz bs=64 skip=13、 gunzip解压ramdisk.image.gz 生成ramdisk.image$ gunzip ramdisk.image.gz4、新建挂载目录“ramdisk”,并将ramdisk.image挂载$ sudo mount -o loop,rwramdisk.imageramdisk5、接下来,只需要将ramdisk目录下的内容全部拷贝到rootfs下即可cp -R ramdisk /* rootfs这样就有了自己的rootfs,省去利用busybox制作的麻烦了有了制作好的rootfs,下面就开始制作映像文件了1、创建镜像文件ramdisk8M.image,并设置大小为8M,文件系统格式为ext2$dd if=/dev/zero of=ramdisk8M.image bs=1024 count=8192$mke2fs -F ramdisk8M.image -L "ramdisk" -b 1024 -m 0$tune2fs ramdisk8M.image -i 0$chmod 777 ramdisk8M.image大小可以按照需要自己调整,但是最好不要超过32M,创建ramdisk目录,将ramdisk8M.image 挂载到该目录下$mkdirramdisk$mount -o loop ramdisk8M.image ramdisk/接下来,只需要将rootfs目录下的内容全部拷贝到ramdisk下即可$cp -R rootfs/* ramdisk注意,这里cp的参数一定是R而非r。
制作ubi文件系统
制作ubi文件系统目录开发环境 (1)Ubi文件系统简介 (1)UBI文件系统前期准备 (2)内核配置 (2)开发板UBIFS工具(flash_eraseall、ubiattach、ubimkvol) (2)主机mtd-utils工具(mkfs.ubifs、ubinize) (4)编译问题 (4)制作ubi文件系统镜像 (5)生成ubifs格式的镜像文件 (5)实际可用的ubi格式镜像 (5)注意事项 (6)文件系统上烧写 (6)通过NFS挂载方式 (6)设置启动参数 (6)将一个分区挂载为ubifs (7)文件系统读写速度测试 (7)ubifs常见指令 (7)开发环境开发环境:vmware+ubuntu10.04开发目录:/home/lisongqing/armLinux源码包:busybox-1.19.2.tar.bz2、linux-3.0.4.tar.bz2交叉编译工具:arm-linux-gcc-4.4.3-20100728.tar.gzUbi文件系统简介由IBM、nokia工程师Thomas Gleixner,Artem Bityutskiy等人于2006年发起,致力于开发性能卓越、扩展性高的FLASH专用文件系统,以解决当前嵌入式环境下以FLASH作为MTD 设备使用时的技术瓶颈(JFFS2、YAFFS2等专用文件系统也存在着一些技术瓶颈,如:内存消耗大,对FLASH容量、文件系统大小、内容、访问模式等的线性依赖,损益均衡能力差或过渡损益等)。
UBI:类似于LVM的逻辑卷管理层,主要实现损益均衡,逻辑擦除块、卷管理,坏块管理等UBIFS:基于UBI的FLASH日志文件系统有关ubifs的详细介绍,请参考:/doc/ubi.html/doc/ubifs.htmlUBI文件系统前期准备内核配置1)Device Drivers --->Memory Technology Device (MTD) support --->enable UBI - Unsorted block images2)File systems --->Miscellaneous filesystems --->UBIFS file system support如果不配置此处,nfs挂载时会出现如下错误:ubiupdatevol: error!: UBI device name was not specified (use -h for help)Kernel panic - not syncing: Attempted to kill init!开发板UBIFS工具(flash_eraseall、ubiattach、ubimkvol)mtd-utils工具中提供了对UBIFS的支持,所以我们需要下载和编译这些工具,下载以下几个文件。
Ubuntu下编译ARM平台QtEmbedded的MySQL和MySQL插件
(原创)Ubuntu下编译ARM平台QtEmbedded的MySQL和MySQL插件需要引用的同学请注明文章出处,谢谢最近需要将一个程序移植到arm平台上,程序调用了MySQL数据库,所以就牵扯到将MySQL数据库移植到ARM平台上面,所以在网上大量查阅资料。
在baidu文库发现了一篇文档,是wlzxlc上传的文档名称为:《编译ARM平台的QtEmbedded的MySQL 插件和移植MySQL》。
下面说明里面介绍到:ARM平台下的QtEmbedded所需mysql插件,及MySQL的移植。
我的整个移植过程参考了这篇文档,但是遇到了很多的问题,所以又上网搜寻其它资料。
现在我已经移植成功,回头看这篇文档,就发现里面有很多疏漏甚至是错误。
这些东西如果不详细注明出来,更多的新手绝对还会重蹈我的覆辙,所以在这里将mysql 的arm+linux移植经验贴出来,希望对新手以及做相关方面工作的人能有帮助。
所有在《编译ARM平台的QtEmbedded的MySQL插件和移植MySQL》这篇文档中的错误以及注意事项,我也会一一列出,在下面我将其称为“原文”。
编译器:arm-linux-gcc(4.3.2)Pc平台:ubuntu在移植之前有必要先说明一下几个问题:1.MySQL还没有支持交叉编译的版本出现.但为了让编译继续,必须在configure脚本中将多处不支持交叉编译的命令全都注释掉,才能让configure顺利通过。
2.交叉编译过程中需要用到ncurses-5.6下的libncurses.a库,而这个库文件也必须是arm 平台下的,所以我们在交叉编译MySQL时需要先自己手动交叉编译libncurses.a的库。
(原文是说需要libncurses.so.5文件,这里我查阅很多资料发现,应该是libncurses.a)3.编译过程中需要运行gen_lex_hash,但这个命令是arm格式的在pc机上运行不起来,解决方法是要编译好一个在pc上运行的mysql,从相应的目录下拷出gen_lex_hash覆盖相应目录下的这个arm格式的gen_lex_hash (这里要注意的是这个pc机上运行的mysql编译路径要和现在这个arm上运行的mysql路径完全相同,否则后面同样的问题中执行命令时涉及到路径问题,解决办法是先把现在编译的arm平台的mysql目录改为其他名称,再解一个mysql包改名为mysql将其编译成pc上运行的版本,只要简单的用./configure |make就行了,再把pc版本的mysql改为mysql-pc,将原来的那个名称改回mysql即可(貌似有点晕乎)。
基于VirtualBox虚拟机-Ubuntu操作系统的ARM嵌入式平台搭建
基于VirtualBox虚拟机-Ubuntu操作系统的ARM嵌入式平台搭建花费了两台的时间,终于把这个开发平台搭建完毕了。
现在做一下总结,以后当作笔记试用。
平台主要包括PC机、VirtualBox虚拟机、ARM开发板三个主要部分,其中PC机和开发板有同一个路由器接入网,是它们在同一个网段内,不但可以实现PC机、虚拟机、开发板的三方互通,而且能够边开发边访问互联网。
前提:你要知道自己开发板的IP地址。
下面根据搭建顺序进行分析。
一、PC机下安装虚拟机PC机安装虚拟机的过程很简单,我是在windows xp系统下实现的,如果你的系统是windows 7的话,该文档仅作参考。
首先下载最新版本的VirtualBox虚拟机,这款虚拟机的特点是操作界面简单方便,占用内存少,网络接入设置简单。
下载后会见到如下安装图标:现在最新版本的应该是4.2.4的,但是如果你下载的不是最新版本,可以在帮助菜单栏里面进行检查更新升级软件。
点击上面图标,会进入安装向导:welcome to the oracle vm virtualbox *.*.* setup wizard,然后点击next,选中I accept···这一项(不选中next会是灰色的),然后点击next进入下一个设置页面。
点击browse,会出来一个让你选择安装路径的对话框,根据你的情况选择好后点击ok,然后再点击next进入下一个设置页面。
该页面默认选择了在桌面创建快捷方式和快速启动栏创建图标,如果希望这样就勾选上,然后点击next就开始安装了。
安装的过程比较长,因为虚拟机会自己配置本地网络,所以请耐心等待。
安装好后,本地桌面上会出现Vbox软件的快捷方式,同时你右击网上邻居,点击属性,会发多出一个网络连接的表示,这个就是虚拟机自己设定的虚拟网卡(默认情况下Vbox的接入网络采用NAT方式,及地址转换方式,意思就是本地网卡相当于路由器,虚拟网卡通过它接入因特网)。
zynq_ubuntu桌面系统的建立
UbuntuontheZynq™-7000SoCFeaturingthe Avnet ZedBoard 这个指南提供了一种集合几个不同的技术在一个平台的方法,使用Avnet ZedBoard,我们拥有800Mhz ARM-9 Cortex 32位双核处理芯片,联合Xilinx FPGA 无与伦比的灵活性实施自定义用户系统。
我们使用一个Linux内核作为基础操作系统在处理器内核运行,同时添加一个全性能的桌面架构Ubuntu,在根文件系统中控制。
这个桌面允许ZedBoard像个人计算机一样工作,使用USB接口的键盘和鼠标,和一个HDMI接口的显示器。
实验1:FPGA硬件平台1,在网站:/resources/fpga/xilinx/kc705/adv7511下找到cf_adv7511_zed_edk_14_4_2013_02_05.tar.gz链接,下载得到HDL Reference Design,解压并将cf_adv7511_zed和cf_lib拷贝到目录L:\ubuntu_linux下。
2,打开cf_adv7511_zed文件下的system.xmp文件3,在XPS下,点击Generate BitStream产生syste.bit文件,将在Zynq_Ubuntu\cf_adv7511_zed\implementation\system.bit4,在xps下,点击左边的SDK Export Design 图标,勾选上include bitstream and BMM files,点击Export and Launch SDK按钮。
选择工作区间为l:\ubuntu_linux\ f_adv7511_zed\SDK\SDK_Workspace,ok5,在SDK下,新建一个应用工程zynq_fsbl_0选择Zynq FSBL ,finish。
将在Zynq_Ubuntu\cf_adv7511_zed\SDK\SDK_Workspace\zynq_fsbl_ 0\Debug\zynq_fsbl_0.elf6,在zynq_ubuntu目录下新建一个文件夹bootfile,将system.bit文件和zynq_fsbl_0.elf文件都复制到bootfile文件夹下。
ARM架构安装ubuntu系统
ARM架构安装ubuntu系统⼀、简介arm开发板制作系统是⽐较⿇烦,不论使⽤busybox还是yocto制作根⽂件系统对新⼿都⽐太友好,除⾮深度定制,否则使⽤ubuntu系统既可以满⾜,把更多的精⼒放在应⽤开发上。
⼆、准备材料我使⽤的芯⽚是RK3288,⼩伙伴可以根据⾃⼰的情况选择开发版。
开发环境:VMware操作系统:ubuntu开发版:RK3288三、ubuntu的下载与配置1. 下载ubuntu系统ubuntu官⽹根⽂件系统下载地址 ,根据需要下载⾃⼰所需的版本,我使⽤的是ubuntu20.04.2。
打开链接后选择ubuntu-base → releases →版本号→ release → ubuntu-base-20.04.1-base-armhf.tar.gz 下载完成后将ubuntu-base-20.04.1-base-armhf.tar.gz拷贝到ubuntu下,并解压。
mkdir ubuntu20.04.2sudo tar zxf ubuntu-base-20.04.1-base-armhf.tar.gz -C ubuntu20.04.22. 安装qemu-user-static⼯具安装完成后拷贝“/usr/bin/qemu-arm-static”到刚刚解压⽂件的“/usr/bin”路径下。
sudo apt-get install qemu-user-staticsudo cp /usr/bin/qemu-arm-static ubuntu20.04.2/usr/bin/3. ⽹络配置我在上⼀篇⽂章中,介绍在ubuntu20.04.2/etc/apt/sources.list⽂件中更改ubuntu的软件源,不知道为啥这次配置后反⽽下载不了,所以这⾥我就没有配置,各位⼩伙伴视情况⽽定。
为了制作成功的根⽂件系统能够联⽹,可以直接拷贝本机的dns配置⽂件到根⽂件系统的相应位置。
sudo cp /etc/resolv.conf ubuntu20.04.2/etc/resolv.conf4. 使⽤chroot⼯具挂载⽂件系统挂载成功后会进⼊到我们下来的系统中,注意⾥⾯的操作都是对我们挂载的系统进⾏操作的,⽆法在对开发系统进⾏操作,除⾮使⽤exit命令退出。
Ubuntu Linux操作系统第3版(微课版)—第12章
第12章 Ubuntu服务器 27
• 动态调整逻辑卷容量 (1)使用vgdisplay命令查验testvg卷组的情况,发现还有空间未被使用。 (2)执行lvresize命令基于卷组testvg所有剩余空间进一步扩充逻辑卷testlv。 (3)再次使用vgdisplay命令查验testvg卷组的情况,发现PE都用尽了。 (4)执行lvdisplay命令显示逻辑卷testlv的详细情况。 (5)检查该逻辑卷文件系统的磁盘空间占用情况。 (6)调整文件系统容量。 对于ext系列文件系统,需要使用resize2f命令来动态调整文件系统容量。 resize2fs [选项] 设备名 [新的容量大小] 对于xfs文件系统,可以执行xfs_growfs命令调整容量。
第12章 Ubuntu服务器 5
• 选择键盘配置
12.1 Ubuntu服务器的安装和配置管理
安装Ubuntu服务器 • 选择安装的类型
第12章 Ubuntu服务器 6
• 配置网络连接
12.1 Ubuntu服务器的安装和配置管理
安装Ubuntu服务器 • 根据需要配置HTTP代理
第12章 Ubuntu服务器 7
动态调整磁盘存储空间
第12章 Ubuntu服务器 25
• 创建逻辑卷 (1)准备相应的物理存储器,创建磁盘分区。可以以两个磁盘分区/为例。磁盘、磁盘 分区、RAID阵列都可以作为存储器转换为LVM物理卷。 (2)使用pvcreate命令将上述磁盘分区转换为LVM物理卷(PV)。 (3)执行pvscan命令来检测目前系统中现有的LVM物理卷信息。 (4)使用vgcreate命令基于上述两个LVM物理卷创建一个LVM卷组,例中将其命名为 testvg。 (5)执行vgdisplay命令显示卷组testvg的详细情况。
Ubuntu 10.04运用crosstool-ng-1.9.0建立arm-linux交叉工具链
Ubuntu 10.04下运用crosstool-ng-1.9.0建立arm-linux交叉工具链构建一个交叉工具链供嵌入式系统开发使用是一个令人恐惧的景象,需要钢铁般的意志,需要几天(如果不是几个星期)的功夫,需要具备许多的 Unix 和GNU 知识……”正式基于这一点,我们选择开源工具crosstool-ng,来制作自己的交叉编译工具链。
Crosstool现在也有好几个版本,在这里我选择crosstool-ng-1.9.0这个工具包。
我所选的主机系统是Ubuntu10.04。
在制作交叉编译工具之前要安装各种各样的编译工具,因为Ubuntu系统的方便性,我们可以通过具体的命令在线安装所需的软件。
下面将是具体的制作交叉编译的过程;一、安装所需的工具包$ sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs cvsd gawk二、下载交叉编译工具所用的文件,在制作交叉编译的过程中,需要在线下载这个编译工具包,考虑到网速的问题和编译的时间问题,提前将这些包下载下来,放在指定的目录下,可以大大节省很多的编译时间,考虑到各种包的下载问题,这个百度文库又不能上传软件包,我就将所有的下载路径附在文章后面,同仁们可以去具体的地方下载!三、安装crosstool-ng-1.9.0.tar.bz2的工具。
安装所需的crosstool-ng-1.9.0,也可在这个地址下/old_news下载crosstool-ng的工具包。
下面是详细的安装步骤:#cd //回到家目录#mkdir crosstool //建立crosstool目录#cp ~/下载/tar/crosstool-ng-1.9.0.tar.bz2 ./crosstool //拷贝crosstool源码包到crosstool目录下#cd crosstool //进入crosstool目录#tar jxvf crosstool-ng-1.9.0.tar.bz2 //解压源码包考虑到后续要用的各种目录,我这里先建立好所需的目录#mkdir crosstool-build crosstool-install src //解压完后建立安装目录编译目录和源码包目录,这几个目录和crosstool-ng-1.9.0目录并列,如下图所示:#cd crosstool-ng-1.9.0 //进入crosstool目录#./configure --prefix=~/crosstool/crosstool-install# make //编译# sudo make install //安装#cd crosstool-build/ //进入crosstool-build目录#cp ../crosstool-ng-1.9.0/samples/arm-unknown-linux-gnueabi/* ./ //拷贝交叉工具链到crosstool-build目录下#mv crosstool.config .config //修改文件名#../crosstool-install/bin/ct-ng menuconfig此刻会出现一个图形配置界面,在此配置界面下,可以按照自己开发板的实际情况来进行配置:1、设定源码包路径和交叉编译器的安装路径。
Ubuntu与arm开发之间FTP文件传输
Ubuntu与arm开发之间FTP文件传输1、首先启动虚拟机中ubuntu下的vsftp服务:sudo /etc/init.d/vsftpd start开发板在启动时已经开启了ftp服务。
2、在ubuntu中使用命令ftp 192.168.1.230(开发板IP)输入用户名plg输入密码plg3、已经进入了ftp服务默认的接受位置在/home/plg使用lcd命令设置ubuntu下文件接收位置ftp>lcd /home/glorin/work/linux4、文件传输使用cd命令进入开发板上要进行文件传输的目录使用get命令从开发板上将文件传输到ubuntu中设置的目录下使用put将ubuntu下设置目录的文件传输到开发板ftp>put hello5、使用bye退出ftp最常用的命令有:ftp> help 列出ftp 文件传输,可使用之任何命令。
ftp> !ls 列出本地工作站,目前目录下之所有文件名。
ftp> !pwd 列出本地工作站,目前所在之工作目录位置。
ftp> ls 列出远端工作站目前目录下之所有文件名。
ftp> dir 列出远端工作站目前目录下之所有文件名(略同于UNIX 的ls -l 指令).ftp> dir . |more 同上,但每页会暂停(可能不适用Unix 以外的ftp)。
ftp> pwd 列出远端工作站目前所在之目录位置。
ftp> cd dir1 更改远端工作站之工作目录位置至dir1 之下。
ftp> get file1 将远端工作站之文件file1 ,拷贝到本地工作站中。
ftp> put file2 将本地工作站之文件file2 ,拷贝到远端工作站中。
ftp> mget *.c 将远端工作站中,副文件名为c 之所有文件,拷贝到本地工作站中。
搭建arm-linux-gcc-4.6.1
Ubuntu11.04中搭建交叉编译环境(arm-linux-gcc-4.6.1版本)声明:本文主要参考/xt_xiaotian/article/details/6836739,并根据实际情况作了一定的修改与说明编译环境:内核名称:Linux内核发行版:2.6.38-11-generic内核版本:#50-Ubuntu SMP Mon Sep 12 21:18:14 UTC 2011硬件架构名称:i686硬件平台:i386操作系统:GNU/Linux当前系统gcc版本号:4.5.2在Linux中建立整个ARM交叉编译环境的整体过程为:1、下载源码包2、建立编译目录并设置环境变量3、安装内核头文件4、安装二进制工具(binutils)5、建立初始编译器工具链(简版gcc)6、建立glibc库7、建立全套编译器工具链(full gcc)8、验证一、下载源码包GNU的所有源码文件都可以到这个地址下载:/gnu/Linux Kernel源代码可以去这里下载:mpc可以去这里下载:下载的源码包如下:binutils-2.21.1.tar.bz2gcc-4.6.1.tar.gzglibc-2.14.tar.gzglibc-linuxthreads-2.5.tar.bz2glibc-ports-2.13.tar.gzgmp-5.0.2.tar.bz2linux-2.6.32.45.tar.gzmpc-0.9.tar.gzmpfr-2.4.2.tar.gz注:mpfr不建议使用3.0.0版本。
mpfr-3.0.0有Bug,会导致gcc编译不过。
二、建立编译目录并设置环境变量选定自己的工作目录,如我选择/opt/embedded作为自己的工作目录。
然后再embedded 中建立build-tools、kernel、tools三个文件夹。
实例:root@ubuntu:/opt/ming# cd /opt/root@ubuntu:/opt# mkdir embeddedroot@ubuntu:/opt# cd embedded/root@ubuntu:/opt/embedded# mkdir build-tools kernel toolsroot@ubuntu:/opt/embedded# cd build-tools/root@ubuntu:/opt/embedded/build-tools# mkdir build-binutils build-boot-gcc build-glibc build-gcc各文件夹的作用如下:/opt/embedded:交叉编译环境的主目录/opt/embedded/build-tools:存放binutils、gcc、glibc等GNU源码和用来编译这些源代码的目录/opt/embedded/kernel:用来存放Linux内核源代码/opt/embedded/tools:用来存放编译好的交叉编译工具和库文件/opt/embedded/build-tools/build-binutils:编译binutils的目录/opt/embedded/build-tools/build-boot-gcc:编译gcc启动部分的目录/opt/embedded/build-tools/build-glibc:编译glibc的目录/opt/embedded/build-tools/build-gcc:编译整个gcc的目录建立好编译目录之后便是设置环境变量(建议直接在~/.bashrc中修改,注意修改之后要重新运行Terminal)。
ubifs的制作,移植的重点详解
ubifs的制作,移植的重点详解PC操作系统:ubuntu 11.10使用的开发板:am335x_evm开发板使用的操作系统:linux 3.2使用的 NAND FLASH的型号:MT29F2G08ABAEAWP在制作 ubifs 文件系统的过程中需要如下:为方便操作,把下面将要安装的数据包的解压文件到存放在:/home/user/mtd再mkdir install,下面将要运行的数据包生成的文件将会存放在:/home/user/mtd/install1),正确安装数据包:zlib-1.2.5;lzo-2.06;e2fsprogs-1.42,mtd-utils-1.5.0这些数据包的版本最好如上所述,否则可能会导致无法生成所需的文件或生成的文件不正确这是制作 ubifs 过程中将要用到的所有的软件包的连接:ubifs1,zlibhost$ tar xvf zlib-1.2.5.tar.gzhost$ cd zlib-1.2.5/host$ ./configure --prefix=/home/user/mtd/install打开其根目录下的 Makefile,替换 gcc, ldshared, cpp, ar , ranlib 为如下:host$ gedit MakefileCC=arm-arago-linux-gnueabi-gccLDSHARED=arm-arago-linux-gnueabi-gcc -shared -Wl,-soname,libz.so.1,--version-script,zlib.mapCPP=arm-arago-linux-gnueabi-gcc -EAR=arm-arago-linux-gnueabi-ar rcRANLIB=arm-arago-linux-gnueabi-ranlib保存,退出host$ makehost$ make installhost$ cd ..生成的 zlib.a 存放在 /home/user/mtd/install/lib 中;生成的 zlib 的头文件存放在 /home/user/mtd/install/include 中。
arm,linux,电源管理解决方案
arm,linux,电源管理解决方案篇一:ARM+Linux开发平台搭建详细步骤1、安装VMWare虚拟机(创建一台虚拟的电脑)并设置(1)用默认的步骤安装,并输入注册号(2)打开VMWare,点击文件-新建虚拟机接下去几步选择默认不停的点击“下一步”直到最后点击“完成”就行了2、在VMWare上定制安装Linux系统在虚拟机的CD中选择挂载硬盘上的Linux iso镜像文件点击开启此虚拟机,出现这个界面时,把鼠标点进虚拟机界面,选择第一项,并回车这里选择Skip这里选择忽略所有数据篇二:基于arm的智能家居系统方案基于ARM的智能家居系统设计方案1. 系统综述智能家居(Smart Home)是以住宅为平台,利用综合布线技术、网络通信技术、安全防范技术、自动控制技术、音视频技术将家居生活有关的设施集成,构建高效的住宅设施与家庭日程事务管理系统,以提升家居安全性、便利性、舒适性、艺术性,并实现环保节能的居住环境。
衡量一个智能家居系统的成功与否,并非仅仅取决于智能化系统的多少、系统的先进性或集成度,而是取决于系统的设计和配置是否经济合理并且系统能否成功运行,系统的使用、管理和维护是否方便,系统或产品的技术是否成熟适用,换句话说,就是如何以最少的投入、最简便的实现途径来换取最大的功效,实现便捷高质量的生活。
智能家居通常包括以下子系统:访问/控制系统通过电脑、手持终端等设备了解家中状况,对设备进行控制。
门禁系统门禁系统主要包括以下功能,室外监控功能:当门口有异响自动提示,能在家中或远程看到外面情况;拍照存档功能:当家中没人且有人按动门铃,便自动拍照存储,方面房屋主人查询;可视对讲功能:有客来访,可自由通话,并能看到外面情况,并能控制门锁的打开关闭;远程开锁功能:可以通过Internet 网,在任何地方开启家里的门锁。
视频监控系统视频监控的基本功能主要有:远程监控:可以进行实时本地和远程网络监控;远程控制:可以实现远程对设备的各种控制,可以对图像质量,分辨率,图像缩放进行操作,可以对云台的移动方向进行控制;视频存储:能够将视频数据本地存储,能够在任何时候对这些数据进行回放;移动侦测:布防后能够发现移动的物体并报警。
ubuntu14.04下arm-linux-gcc4.5.1的安装与配置
ubuntu14.04下arm-linux-gcc4.5.1的安装与配置
使⽤的是友善之臂mini6410⾃带光盘中的。
1.对新版本arm-linux-gcc-5.4.1进⾏解压(注意,下⾯的C是⼤写的)
tar zxvf arm-linux-gcc-4.5.1-v6-vfp-20101103.tgz -C/
解压完成后,会解压到/opt/FriendlyARM/toolschain/4.5.1/⽬录下。
(不加C的话,应该会解压到软件压缩包同⽂件夹下⾯。
加C,是解压到根⽬录。
)
2.设置环境变量
sudo vim /etc/profile
在最后⼀⾏加:
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
即将交叉编译⼯具链的路径加⼊。
完成后保存。
3.使⽤命令:source /etc/profile 使环境变量⽣效
4.检查是否将路径加⼊PATH中。
echo $PATH
如果成功的话,会出现刚才设置的变量地址。
5.测试是否成功
在终端⾥输⼊arm-linux-gcc-v,这个命令会显⽰arm-linux-gcc信息和版本,如果出现以下信息则表⽰安装成功
⾄此,安装结束。
(注意,如果上⾯4.5两步不成功的话,重启计算机试⼀下。
)。
使用Buildroot制作根文件系统
使用Buildroot制作根文件系统Buildroot是一个用于构建嵌入式Linux根文件系统的工具,它提供了简单易用的配置方式和快速构建系统,可以帮助用户快速构建出自己的根文件系统。
Buildroot支持许多不同的架构和硬件平台,并集成了许多开源软件包,可以根据用户的需求来进行定制。
在本文中,我们将介绍使用Buildroot制作根文件系统的步骤和注意事项。
一、安装Buildroot在开始使用Buildroot制作根文件系统之前,需要先安装Buildroot。
可以在官方网站上下载最新版本的Buildroot,然后解压缩到本地目录。
在解压缩之后,进入到Buildroot的目录,可以看到有一个名为Makefile的文件,这是Buildroot的主要配置文件。
二、配置BuildrootConfigure Buildroot的过程就是创建一个默认的配置文件,通过这个默认配置文件生成根文件系统。
执行以下命令:```make menuconfig```这个命令将打开一个配置菜单,其中包括了一些基本的选项和一些高级选项。
基本选项包括选择所需的架构、选择和配置内核和交叉编译工具链等。
此外,还可以选择要安装的软件包、文件系统类型、文件系统大小等选项。
三、编译Buildroot完成配置后,就可以开始编译Buildroot。
执行以下命令:```make```这个命令将依照之前的配置文件,将所需的软件包下载、交叉编译、配置、安装,然后将所有安装的文件打包成 rootfs.tar 文件。
四、安装根文件系统在编译成功之后,就可以将根文件系统安装到目标平台上。
在目标平台上,先将 rootfs.tar 文件解压缩,然后将解压缩后的文件拷贝到目标文件系统的根目录下。
这里需要注意的是,需要将交叉编译的库和工具链一并拷贝到目标平台上。
五、启动目标平台在将根文件系统安装到目标平台之后,就可以启动目标平台并开始使用它了。
如果一切都配置正确的话,应该可以看到一个基本的 Linux 终端界面。
ubifs文件系统的制作过程
ubifs文件系统的制作过程&&遇到的问题及解决方案总结---之一“uboot中添加对UBIFS文件系统的支持”分类:嵌入式2012-04-18 21:34 314人阅读评论(0) 收藏举报为了更好的理解ubifs根文件系统的制作,首先,我们简单的说一下,系统的组成:bootloader(uboot)的作用就是用来加载操作系统;而嵌入式linux系统由linux 内核和根文件系统两部分构成,两者缺一不可。
所以我们要制作一个UBIFS的根文件系统,首先必须让上面系统组成的几个部分都支持UBIFS文件系统,就得在这几个组成部分添加一些“东西”(支持UBI的配置):(打个我自己理解的比喻吧:“娶媳妇”比作--启动系统,娶媳妇是不是要经过老爸、老妈、丈母娘、岳父的同意和支持?bootloader、parames、kernel、root Filesystem便是老爸、老妈、丈母娘、岳父...O(∩_∩)O~,而你叫"UBI")这篇博文主要是详细解析:uboot中添加对UBIFS文件系统的支持一、移植环境§主机:vmware-redhat5§开发板:mini2440--256MB nandflash§kernel:2.6.29 编译器:arm-linux-gcc-4.3.2.tgz§uboot: u-boot-2008.10二.移植步骤本次移植的功能为:支持UBIFS文件系统1.在include/configs/mini2440.h中添加如下配置:(注意:不同的开发板在include/configs/目录下对应的修改的配置文件不同,我的开发板是mini2440所以修改的是mini2440.h)#define CONFIG_MTD_DEVICE#define CONFIG_MTD_PARTITIONS#define CONFIG_CMD_MTDPARTS#define CONFIG_LZO#define CONFIG_RBTREE#define CONFIG_CMD_UBIFS //要支持ubIfs首先得让uboot支持UBIFS的烧写命令#define CONFIG_CMD_UBI //uboo支持的ubifs烧写命令:1.mtdparts: 用来给NAND分区;/*2.nand erase.part:用来擦除指定分区等这些命令在“UBIFS镜像的制作&&烧写”博文理解*///其次要支持MTD(memory technology device内存技术设备)是用于访问memory设备(ROM、flash)的Linux的子系统#define MTDIDS_DEFAULT "nand0=nandflash0" //同时要给nandlflash建立默认的分区,#define MTDPARTS_DEFAULT"mtdparts=nandflash0:384k(bootloader),"\ //我的分区:"128k(params),"\"5m(kernel),"\"64m(root)"/*还要修改下面几个宏,因为使用UBIFS会占用更多的堆、栈空间*/#define CONFIG_STACKSIZE (512*1024)#define CONFIG_SYS_MALLOC_LEN (CONFIG_ENV_SIZE+1024*1024) #define CONFIG_SYS_GBL_DATA_SIZE 5122.回到uboot的顶层目录下(可能拿到的uboot已被编译过,所以最好要用此命令清理中间文件)执行命令:make clean(uboot是通用的bootloader,支持多种开发板,所以编译之前先选择使用哪种board)执行命令:make mini2440_config注意:我用的是mini2440开发板,所以要编译这个开发板使用的uboot,所以这里的目标为mini2440_config,表示选择的board是mini2440(mini2440_config在Makefile标准术语称为“目标”,可以在uboot顶层Makefile找到该目标)执行命令(开始编译uboot):make CROSS_COMPILE=arm-linux-ubifs文件系统的制作过程&&遇到的问题及解决方案总结---之二“Linux内核中添加对UBIFS文件系统的支持”分类:嵌入式2012-04-19 13:55 156人阅读评论(0) 收藏举报一、移植环境§主机:vmware-redhat5§开发板:mini2440--256MB nandflash§kernel:2.6.29 编译器:arm-linux-gcc-4.3.2.tgz§uboot: u-boot-2008.10二.移植步骤1.在内核顶层目录下使用命令:make menuconfig ,进入内核配置菜单,添加对UBIFS文件系统的支持。
Ubuntu的一些文件系统的操作(转自我自己的其他博客)
Ubuntu的⼀些⽂件系统的操作(转⾃我⾃⼰的其他博客)Linux初来乍到,之前在VMware虚拟机上安装的Ubuntu kylin14.10,由于只分配了20G 的空间,导致编译内核时候严重不够⽤。
于是想扩展磁盘容量。
那么在虚拟机关机以后把磁盘容量扩展到30G以后,在虚拟机内还需要创建分区和⽂件系统才能⽤。
于是⼀条条来。
⾸先是查看命令,其中最常⽤的是fdisk -l和df -h。
fdish -l返回结果如下格式:Device Boot Start End Blocks Id System/dev/sda1 * 1 638 5120000 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 638 893 2048000 83 LinuxPartition 2 does not end on cylinder boundary./dev/sda3 893 1020 1024000 82 Linux swap / SolarisPartition 3 does not end on cylinder boundary./dev/sda4 1020 1306 2292736 5 Extended/dev/sda5 1021 1306 2291712 83 Linux会列出你每块磁盘的情况。
那么df -h则偏重于⽂件系统,返回格式如下:Filesystem Size Used Avail Use% Mounted on/dev/sda1 95G 918M 89G 1% /tmpfs 2.0G 0 2.0G 0% /lib/init/rwudev 2.0G 224K 2.0G 1% /devtmpfs 2.0G 3.1M 2.0G 1% /dev/shm/dev/mapper/pve-data 344G 2.3G 342G 1% /var/lib/vz/dev/fuse 30M 16K 30M 1% /etc/pve我⾃⼰的磁盘是sda3和sda4分区还没有分的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.安装rootstock软件
rootstock是一个用来制作Ubuntu根文件系统的工具,可以使用apt-get install rootstock获取,也可以在官网直接下载:https:///project-rootstock
若选择前者:直接使用rootstock命令
若选择后者:解压下载文件rootstock-0.1.99.4.tar.gz得到rootstock可执行文件,可以将其拷贝到系统bin目录下
2.rootstock创建根文件系统
[html]view plaincopy
得到文件系统压缩文件qemu-armel-201408271515.tar.gz
创建一个空镜像:
[html]view plaincopy
在镜像上创建文件系统:
[html]view plaincopy
挂载镜像:
[html]view plaincopy
将文件系统解压到挂载目录:
[html]view plaincopy
这时可以修改挂载目录中的东西了:
[html]view plaincopy
最后是得到最后的文件系统镜像:
[html]view plaincopy
3.模拟器中运行根文件系统
下载模拟器qemu:
[html]view plaincopy
在2中的“若干修改”中执行:
[cpp]view plaincopy
在仿真环境中访问文件系统
[cpp]view plaincopy
此时在仿真环境下就可以安装SPICE了:[cpp]view plaincopy
安装完SPICE后保存文件系统:
[cpp]view plaincopy。