门业网站 模板,聊天软件开发多少钱,外网wordpress好慢,做软件常用的网站iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器#xff0c;既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构#xff0c;主频650M、1G内存、8G存储#xff0c;核心板采用工业级板对板连接器#xff0c;高可靠#xff0c;牢固耐…iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构主频650M、1G内存、8G存储核心板采用工业级板对板连接器高可靠牢固耐用可满足高速信号环境下使用。共240PINCPU功能全部引出:底板扩展接口丰富底板板载4G接口(选配)、千兆以太网、WIFI蓝牙模块HDMI、CAN、RS485、LVDS接口、温湿度传感器(选配)光环境传感器、六轴传感器、2路USB OTG、3路串口CAMERA接口、ADC电位器、SPDIF、SDIO接口等 第七十一章 制作Ubuntu文件系统 作为linux开发平台iTOP-STM32MP157也可以移植ubuntu系统.
Ubuntu Base是用于为特定需求创建自定义映像的最小rootfs。Ubuntu Base致力于为板级支持包(BSP)、受限制或集成环境中的应用创建适当的最小环境作为应用或Linux容器如LXC或Docker演示映像的基础。
Ubuntu移植比较简单ubuntu官方提供了制作好的根文件系统我们只需要配置下相关内容即可放到板子上运行。本章我们构建的是ubuntu18.04系统。
下载好的Ubuntu –base源码放在“iTOP-STM32MP157开发板网盘资料汇总\03_文件系统源码和镜像\05_ubuntu文件系统\01_ubuntu18_base源码”目录中如下图 我们事先准备好了编译好的ubuntu-base的烧写镜像放在“iTOP-STM32MP157开发板网盘资料汇总\03_文件系统源码和镜像\05_ubuntu文件系统\02_制作好的镜像”目录中如下图 需要注意的是ubuntu文件系统在烧写之后并没有默认连接网络需要自己使用命令“dhclient eth0”。进行连接网络。
使用命令“vim /etc/resolv.conf”添加以下内容 nameserver 114.114.114.114 nameserver 8.8.8.8 添加完成如下图所示 至此我们的ubuntu文件系统就可以上网了
71.1 Ubuntu-base获取
Ubuntu官方针对不同的CPU架构提供相应的ubuntu base根文件系统有amd64(64位X86)、armhf、i386(32位X86)、powerpc、ppc64el等系统的。
我们可以先下载到Windows计算机内网站如下。
Ubuntu Base 18.04.5 LTS (Bionic Beaver)
ubuntu-base-18.04.5-base-armhf.tar.gz点击下载即可如下图所示 这个压缩包在我们的资料有提供。放在“iTOP-STM32MP157开发板网盘资料汇总\03_文件系统源码和镜像\05_ubuntu文件系统\01_ubuntu20_base源码”目录下
然后我们使用SSH工具传输到我们在虚拟机ubuntu上所建立的文件夹内拷贝完成如下图所示 71.2 解压Ubuntu-base
首先我们使用命令“mkdir raw-rootfs”在当前目录下建立raw-rootfs文件如下图所示 然后我们使用命令“sudo tar -xvpf ubuntu-base-18.04.5-base-armhf.tar.gz -C raw-rootfs/”解压系统文件(建议制作文件的小节都在普通用户下操作)解压完成之后就是根文件系统使用命令“ls”查看目录如下图所示 71.3 安装Qemu-User-Static工具
QEMU是专门模拟不同机器架构的软件在ubuntu中对其支持良好若需要挂载ubuntu armhf版本的文件必须安装qemu-user-static工具。
首先Ubuntu下使用命令“sudo apt-get install qemu-user-static”安装安装过程中按y继续。如下图所示 这一步骤是将qemu-user-static安装到了pc的ubuntu上然后使用命令 sudo cp /usr/bin/qemu-arm-static ./raw-rootfs/usr/bin/ 拷贝qemu-arm-static到刚刚解压出来的目录。如下图所示 71.4 设置软件源
Ubuntu安装软件是通过名apt-get从网上下载安装的。我们需要指定软件源。
为了制作成功的根文件系统能够联网可以直接拷贝本机的dns配置文件到根文件系统的相应位置使用命令“sudo cp /etc/resolv.conf raw-rootfs/etc/resolv.conf”如下图所示 由于默认的apt源服务器在国外导致下载速度特别慢所以我们在这里换成国内的清华源使用命令“sudo vim ./raw-rootfs/etc/apt/sources.list”进入该文件。如下图所示 删除之前的内容替换为如下内容 deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main universe restricted deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main universe restricted 如下图所示 保存并退出。
71.5 挂载根文件系统并Chroot
1首先在本机挂载刚刚下载好的文件系统需要挂载proc, sys, dev, dev/pts等文件系统。使用命令“sudo vi mount.sh”添加挂载脚本。如下图所示 挂载过程的脚本mount.sh内容如下
#!/bin/bash
mnt() {echo MOUNTINGsudo mount -t proc /proc ${2}procsudo mount -t sysfs /sys ${2}syssudo mount -o bind /dev ${2}devsudo mount -o bind /dev/pts ${2}dev/ptssudo chroot ${2}
}
umnt() {echo UNMOUNTINGsudo umount ${2}procsudo umount ${2}syssudo umount ${2}dev/ptssudo umount ${2}dev
}if [ $1 -m ] [ -n $2 ] ;
thenmnt $1 $2
elif [ $1 -u ] [ -n $2 ];
thenumnt $1 $2
elseecho echo Either 1st, 2nd or both parameters were missingecho echo 1st parameter can be one of these: -m(mount) OR -u(umount)echo 2nd parameter is the full path of rootfs directory(with trailing /)echo echo For example: ch-mount -m /media/sdcard/echo echo 1st parameter : ${1}echo 2nd parameter : ${2}
fi
添加完成如下图 保存退出
2然后使用命令“sudo chmod 777 mount.sh”修改脚本权限如下图所示 3然后使用命令“sudo ./mount.sh -m raw-rootfs/”运行挂载。如下图所示 此时我们可以看到根目录切换成了当前制作ubuntu的目录。
4由于ubuntu base是一个最小根文件系统很多命令、桌面以及软件都没有因此我们需要先安装一下常用的命令和软件
首先使用命令“apt update”来进行系统源的更新如下图所示 然后使用以下命令来安装基本的软件 apt-get install sudo language-pack-en-base ssh net-tools ethtool ifupdown iputils-ping rsyslog htop vim kmod bluez iw network-manager qt5-default openbox make gcc g 如下图所示 中间可能会报以下错误我们需要运行以下命令来解决 cd /var/lib/dpkg
mv info info.bak
mkdir info
apt-get upgrade
运行完成之后重新执行一下安装命令则不会进行报错
安装完成之后如果想要安装对应的桌面可以继续执行以下命令
apt-get install xubuntu-desktop
apt-get install xfce4
apt-get install -y xdm
sudo apt-get install vnc4server
vncserver
具体的安装步骤不再截图安装完成之后开机启动桌面管理器。需要在 /etc/sudoers 文件中赋予权限
使用“vi /etc/sudoers ”命令进入sudoers文件夹添加以下内容赋予topeet用户对应的权限topeet在下一步骤中会创建 topeet ALL(ALL:ALL) ALL 添加完成如下图所示 然后使用命令“passwd root”设置root用户密码在这里我们设置成topeet。如下图所示 然后使用命令“adduser topeet”添加topeet用户如下图所示 我们的密码设置为了“topeet”
接下来使用命令“ vi /etc/hostname”进入hostname文件夹将“localhost.localdomain”修改为“iTOP-STM32MP157.localdomain”设置主机名称
修改完成如下图所示 设置好以后就可以退出根文件系统了输入命令“exit”退出。如下图所示 最后我们将退出以后再执行一下“sudo ./mount.sh -u raw-rootfs/”脚本取消挂载。如下图所示 由于我们需要自动装载一些ko驱动文件且让这些文件在开机之后自动装载我们首先拷贝“iTOP-STM32MP157开发板网盘资料汇总\03_文件系统源码和镜像\05_ubuntu文件系统\03_ko”路径下的ko文件夹到文件系统的usr目录下拷贝完成如下图所示 然后将“iTOP-STM32MP157开发板网盘资料汇总\03_文件系统源码和镜像\05_ubuntu文件系统\04_rc.local”路径下的rc.local文件拷贝到文件系统的etc目录下拷贝完成如下图所示 然后使用命令“sudo chmod 777 rc.local”修改文件对应的权限如下图所示 至此ubuntu base根文件系统就已经制作好了然后我们进行下一个章节的镜像制作了。
71.6 Ubuntu文件系统测试
71.6.1 制作Ubuntu烧写镜像
如下图所示是制作好的ubuntu系统文件 使用命令“mkdir rootfs”创建一个文件夹rootfs用来挂载之后要制作出来的 rootfs.ext4文件系统镜像如下图所示 然后使用命令 dd if/dev/zero ofrootfs.ext4 bs1M count2000 mkfs.ext4 -L rootfs rootfs.ext4 建立一个大小为2000M的ext4 磁盘作者在这里制作的大小为2000MB个人感觉不够用的话可以根据自身情况来进行增大但要注意的是制作的镜像越大对应的烧写时间越长,如下图所示 接下来使用 mount 命令将 rootfs.ext4 挂载到rootfs 目录下挂载要使用root用户如下图所示 mount ./rootfs.ext4 rootfs 然后拷贝我们制作的文件系统到rootfs 目录下如下图所示 cp -a raw-rootfs/* ./rootfs 拷贝完成后使用命令“umount rootfs”进行解除挂载如下图所示 71.6.2 Ubuntu 镜像的烧写
由于 Ubuntu镜像的烧写和之前的QT系统存在区别,QT系统所使用的内核可以不用区分屏幕而ubuntu系统不同。所以我们在烧写镜像的时候需要修改对应的内核镜像我们以烧写ubuntu18无桌面版本的镜像为例镜像存放路径为“iTOP-STM32MP157开发板网盘资料汇总\03_文件系统源码和镜像\05_ubuntu文件系统\02_制作好的镜像\ubuntu18无桌面镜像”如下图所示 在这里rootfs.ext4为我们要烧写文件系统的镜像。而rootfs.tar.gz为我们文件系统的源码之后对文件系统的修改都是通过rootfs.tar.gz源码文件来修改的最后就是我们的不同屏幕的内核镜像进入该文件如下图所示 这里只有四种屏幕的内核镜像原因是这四种屏幕所使用的触摸驱动相同而剩下的4.3寸屏幕和10.1寸屏幕所用到的驱动不同故以上任何一个内核镜像都可以适配。而我们用到以上四种屏幕之后需要拷贝对应目录下的bootfs.ext4内核镜像来替换烧写文件image目录下的bootfs.ext4文件。
然后我们可以根据烧写章节进行对应的烧写 71.6.3 Ubuntu 根文件系统测试
将上一小节所制作好的文件系统镜像rootfs.ext4拷贝到image烧写目录下覆盖掉之前的rootfs.ext4,然后进行烧写烧写启动之后如下图所示:
登录
用户名 topeet
密码 topeet 我们在使用过程中可以按照ubuntu正常开发流程来使用。例如运行hello world程序。
首先我们使用命令“apt-get install gcc --fix-missing”安装编译器我们默认已经安装好了。安装完成后以后输入“gcc -v”查看 gcc 版本。如下图所示 使用“mkdir test”创建测试文件夹进入如下图 然后我们使用命令“vim helloworld.c”创建c文件。 输入如下内容
#includestdio.h
int main(void)
{printf(hello world!\r\n);return 0;
}
如下图 添加完成之后保存并退出。
然后使用命令“gcc -o helloworld helloworld.c -static”编译helloworld程序。如下图所示 最后我们使用命令“./helloworld”即可运行程序如下图。 17.6.4 Ubuntu WIFI测试
烧写完成之后启动开发板进入登录界面登录
用户名 topeet
密码 topeet
进入文件系统之后如下图所示 然后我们使用命令“su root”进入root用户进入成功如下图所示 使用关闭以太网命令 ifconfig eth0 down 输入以下命令查看网络设备 如下图所示 nmcli dev 由于测试用的开发板之前已经连接过wiifi了所以可能会和大家显示的不同输入以下命令开启 wifi nmcli r wifi on 输入以下命令连接 wifi nmcli dev wifi connect wifi 名 password 密码 作者连接公司的 wifi 输入以下命令 nmcli dev wifi connect 2701 password topeet2015 输入以下命令发现可以 ping 通百度说明 WiFi 联网成功。
ping www.baidu.com 至此我们的wifi测试就完成了。
71.6.5 4.3寸屏幕校准
使用4.3寸屏幕的客户在烧写有界面的ubuntu系统后会发现屏幕的触摸不准确所以我们需要校准屏幕。
开机启动之后进入登录界面在终端我们用户名和密码都输入“topeet”即可进入系统如下图所示 然后我们使用“su root”命令输入密码“topeet”转为root用户如下图所示 然后我们使用以下命令 vim /usr/share/X11/xorg.conf.d/40-libinput.con 进入40-libinput.con文件夹如下图所示 我们找到关于触摸屏幕的设置信息“Identifier libinput touchscreen catchall”如下图所示 在该设置信息下添加以下内容添加完成如下图所示 Option CalibrationMatrix -1 0 1 0 -1 1 0 0 1 保存退出然后重启开发板再次打开图形化界面会发现触摸正常了。
71.7 使用制作好的Ubuntu文件系统
在网盘目录“iTOP-STM32MP157开发板网盘资料汇总\03_文件系统源码和镜像\05_ubuntu文件系统\02_制作好的镜像”下有制作好的文件系统镜像rootfs.ext4和制作好的压缩文件 rootfs.tar.gz。
rootfs.ext4文件可以直接拷贝到image目录下替换原来的文件系统镜像然后直接进行烧写即可。
要是我们想对Ubuntu系统进行一定的 修改则需要将rootfs.tar.gz压缩包拷贝到ubuntu虚拟机下任意目录执行“tar -vxf rootfs.tar.gz”解压得到的文件夹raw-rootfs就是开发板的Ubuntu-base文件系统可以在此基础上修改文件系统解压完成之后的文件如下图所示。 然后根据17.5章节进行挂载进入chroot就可以对文件系统进行修改如下图 然后根据17.6.1小节“制作Ubuntu烧写镜像”制作可供我们烧写的镜像然后再使用烧写工具将Ubuntu文件系统烧写进开发板。 文章转载自: http://www.morning.jlmrx.cn.gov.cn.jlmrx.cn http://www.morning.wpmqq.cn.gov.cn.wpmqq.cn http://www.morning.ryjl.cn.gov.cn.ryjl.cn http://www.morning.sbkb.cn.gov.cn.sbkb.cn http://www.morning.sfqtf.cn.gov.cn.sfqtf.cn http://www.morning.xpwdf.cn.gov.cn.xpwdf.cn http://www.morning.tgqzp.cn.gov.cn.tgqzp.cn http://www.morning.jpbky.cn.gov.cn.jpbky.cn http://www.morning.gtjkh.cn.gov.cn.gtjkh.cn http://www.morning.mbpzw.cn.gov.cn.mbpzw.cn http://www.morning.rymd.cn.gov.cn.rymd.cn http://www.morning.hsrpr.cn.gov.cn.hsrpr.cn http://www.morning.mjbkp.cn.gov.cn.mjbkp.cn http://www.morning.lftpl.cn.gov.cn.lftpl.cn http://www.morning.hdzty.cn.gov.cn.hdzty.cn http://www.morning.wbxbj.cn.gov.cn.wbxbj.cn http://www.morning.gmysq.cn.gov.cn.gmysq.cn http://www.morning.htfnz.cn.gov.cn.htfnz.cn http://www.morning.mjqms.cn.gov.cn.mjqms.cn http://www.morning.tsqrc.cn.gov.cn.tsqrc.cn http://www.morning.wqpr.cn.gov.cn.wqpr.cn http://www.morning.schwr.cn.gov.cn.schwr.cn http://www.morning.kkgbs.cn.gov.cn.kkgbs.cn http://www.morning.qzsmz.cn.gov.cn.qzsmz.cn http://www.morning.ntqjh.cn.gov.cn.ntqjh.cn http://www.morning.mmxt.cn.gov.cn.mmxt.cn http://www.morning.dkqbc.cn.gov.cn.dkqbc.cn http://www.morning.dmlgq.cn.gov.cn.dmlgq.cn http://www.morning.rgwrl.cn.gov.cn.rgwrl.cn http://www.morning.lmmkf.cn.gov.cn.lmmkf.cn http://www.morning.rglzy.cn.gov.cn.rglzy.cn http://www.morning.cryb.cn.gov.cn.cryb.cn http://www.morning.wrlxy.cn.gov.cn.wrlxy.cn http://www.morning.wbns.cn.gov.cn.wbns.cn http://www.morning.dwfxl.cn.gov.cn.dwfxl.cn http://www.morning.txnqh.cn.gov.cn.txnqh.cn http://www.morning.qcfcz.cn.gov.cn.qcfcz.cn http://www.morning.hxcrd.cn.gov.cn.hxcrd.cn http://www.morning.fqqcd.cn.gov.cn.fqqcd.cn http://www.morning.mwzt.cn.gov.cn.mwzt.cn http://www.morning.xkzmz.cn.gov.cn.xkzmz.cn http://www.morning.mwlxk.cn.gov.cn.mwlxk.cn http://www.morning.jjhrj.cn.gov.cn.jjhrj.cn http://www.morning.zbmcz.cn.gov.cn.zbmcz.cn http://www.morning.cknsx.cn.gov.cn.cknsx.cn http://www.morning.mhnr.cn.gov.cn.mhnr.cn http://www.morning.tsrg.cn.gov.cn.tsrg.cn http://www.morning.nptls.cn.gov.cn.nptls.cn http://www.morning.yongkangyiyuan-pfk.com.gov.cn.yongkangyiyuan-pfk.com http://www.morning.pyzt.cn.gov.cn.pyzt.cn http://www.morning.trffl.cn.gov.cn.trffl.cn http://www.morning.xprq.cn.gov.cn.xprq.cn http://www.morning.yongkangyiyuan-pfk.com.gov.cn.yongkangyiyuan-pfk.com http://www.morning.zlkps.cn.gov.cn.zlkps.cn http://www.morning.wzdjl.cn.gov.cn.wzdjl.cn http://www.morning.lfqnk.cn.gov.cn.lfqnk.cn http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn http://www.morning.hqrkq.cn.gov.cn.hqrkq.cn http://www.morning.rsbqq.cn.gov.cn.rsbqq.cn http://www.morning.nwmwp.cn.gov.cn.nwmwp.cn http://www.morning.bgqqr.cn.gov.cn.bgqqr.cn http://www.morning.crrmg.cn.gov.cn.crrmg.cn http://www.morning.jjzbx.cn.gov.cn.jjzbx.cn http://www.morning.skfkx.cn.gov.cn.skfkx.cn http://www.morning.qbfkz.cn.gov.cn.qbfkz.cn http://www.morning.zqxhn.cn.gov.cn.zqxhn.cn http://www.morning.ybyln.cn.gov.cn.ybyln.cn http://www.morning.gsdbg.cn.gov.cn.gsdbg.cn http://www.morning.hkpyp.cn.gov.cn.hkpyp.cn http://www.morning.wmfr.cn.gov.cn.wmfr.cn http://www.morning.dzgyr.cn.gov.cn.dzgyr.cn http://www.morning.gtwtk.cn.gov.cn.gtwtk.cn http://www.morning.xbdd.cn.gov.cn.xbdd.cn http://www.morning.nlpbh.cn.gov.cn.nlpbh.cn http://www.morning.zplzj.cn.gov.cn.zplzj.cn http://www.morning.lhxdq.cn.gov.cn.lhxdq.cn http://www.morning.ptwqf.cn.gov.cn.ptwqf.cn http://www.morning.ckfyp.cn.gov.cn.ckfyp.cn http://www.morning.pyncx.cn.gov.cn.pyncx.cn http://www.morning.lznqb.cn.gov.cn.lznqb.cn