从0开始搭建嵌入式linux开发平台 C语言集锦 | 03 - C语言的复合数据类型(typedef关键字、结构体、枚举体、共用体) 【鸿蒙OS最新进展】鸿蒙内核liteos-a体验 在ART-Pi H750上移植TouchGFX(一)——使用STM32CUBMX生成TouchGFX工程 李开复口误?大数据时代,我们的隐私真的安全吗? 下一代数据和AI驱动的营销:大数据平台结构化数据占15%左右-可下载 午报 | 大数据杀熟行为下月明令禁止;比亚迪成为苹果新iPad代工方 「全球程序员节」长安计算唐欣:自主计算机整机带动陕西信息产业 通信行业2020年中报总结:Q2整体环比改善,光器件、物联网与IDC表现突出,维持“增持”评级 Best Efforts 1PC 跨库事务 LeetCode-579、查询员工的累计薪水,601、体育馆的人流量 为啥不推荐uuid作为Mysql的主键呢 手把手教学:linux下oracle升级至11.2.0.4 数据库专题——深入理解count(*)为什么这么慢 Linux中MySQL数据库的使用④-----常用查询语句、常用函数 mysql备份与恢复:完全备份,增量备份,基于位置点恢复,基于时间点恢复 MySQL数据库的编译安装过程 《MySQL 入门教程》第 28 篇 字符集与排序规则 PHP面试技巧 之 职场暗语知多少?! [Dubox]实测。还是原来的配方,还是一样的味道! 【剑指金九银十】程序员,如何做到不惑?(附四面拿到字节跳动offer全过程) 超厉害的阿里技术读物,1500页超全计算机系统底层解析宝典 【融中财经早报9.16】大数据杀熟行为10月1日起明令禁止 大数据时代,机器学习算法该如何升级? 怎么判断自己是否适合做程序员 一分钟告诉你什么是区块链 一个时代一个机会,DeFi的起点X-DeFi,如何玩转X-DeFi? RTX3080显卡已被用于挖矿!映众辟谣:工程师测试散热 2020-09-15 比特币相当于房地产,怎样利用比特币获得流动现金? 区块链安全事件与代码审计 fisco bcos solidity销毁合约,删除合约的方法 Linux 中 Golang 的安装和环境配置 Golang interface{} 转换为某个结构体 区块链知识系列 - Raft 共识 OpenHarmony开发者文档开源计划,快快加入吧 融合创新提升服务,大数据搭建信息网 长三角税收一体化按下“快进键” 河钢集团与海尔集团签署物联网生态战略合作协议 1一个拥有万物互联神话,让我们看物联网是如何蓬勃发展的? 重庆大数据产业研究院成立,首批专家服务团名单公布 百分点大数据技术团队:互联网舆情系统的架构实践 水泥大数据研究院郑建辉:四季度水泥价格仍有望冲击去年高位 中国物联网与绿色智慧城市发展论坛召开 欧普照明点亮智慧道路之光 Android & Kotlin:Retrofit + Hilt 实现 看妹子app Android - 控件抖动效果 DevEco studio 一直加载gradle android如何获取调试版及发布版安全码SHA1 Android手机获取IP地址的两种方法 Android Activity 启动过程详解(上) 思维破局:挣钱其实没那么难,关键是方式要对
您的位置:首页 >开发 >

从0开始搭建嵌入式linux开发平台

I、换源II、交叉编译器III、将uboot烧录到SD卡III、TFTP加载内核和设备树文件IV、NFS挂载根文件系统V、NFS无法挂载文件系统

I、换源

1:清华源地址(ubuntu20.04):https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/2:备份原始源:sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup3:sudo gedit /etc/apt/sources.list4:全部删除,并粘贴为清华源中的内容5:更新源:sudo apt-get update

II、交叉编译器

找到:“gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz“ 在同一文件夹下:sudo mkdir /usr/local/armsudo cp gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/cd/usr/local/arm/sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xzsudo gedit /etc/profile在最后一行输入:export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin保存退出重启电脑查看交叉编译器版本:arm-linux-gnueabihf-gcc -v

III、将uboot烧录到SD卡

1:删除SD卡分区并创建新分区:sudo fdisk -lsudo fdisk /dev/sd?删除原有分区:d1创建新的分区:n然后一直默认即可保存:wq2:格式化SD卡sudo mkfs -t vfat /dev/sd?13: sudo fdisk -l查看SD卡文件类型是否变为Linux(fat)4:进入目录《2/移植阶段/2移植uboot/3LCD和网络windoo_uboot》烧写bin文件./imxdownload u-boot.bin /dev/sd?5:安装puttysudo apt-get install putty6:配置u-boot sudo putty->选择/dev/ttyUSB0 115200 设置网络 setenv ipaddr 192.168.1.50//开发板 IP 地址setenv ethaddr 00:04:9f:04:d2:35//开发板网卡 MAC 地址setenv gatewayip 192.168.1.1//开发板默认网关setenv netmask 255.255.255.0//开发板子网掩码setenv serverip 192.168.1.106 //服务器地址,也就是 Ubuntu 地址saveenv //保存环境变量ping 192.168.1.106设置bootcmdsetenv bootcmd 'tftp 80800000 zImage;tftp 83000000 windoo_bd.dtb;bootz 80800000 - 83000000'设置bootargs setenv bootargs console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.1.106:/home/windoo/linux/nfs/rootfs ip=192.168.1.50:192.168.1.106:192.168.1.1:255.255.255.0::eth0:off'␊ saveenv 

III、TFTP加载内核和设备树文件

1:ubuntu下安装TFTPsudo apt-get install tftp-hpa tftpd-hpasudo apt-get install xinetdmkdir /home/windoo/linuxmkdir /home/windoo/linux/tftpbootchmod 777 /home/windoo/linux/tftpbootsudo touch /etc/xinetd.d/tftpsudo gedit/etc/xinetd.d/tftp->->->server tftp{socket_type = dgramprotocol = udpwait = yesuser = rootserver = /usr/sbin/in.tftpdserver_args = -s /home/windoo/linux/tftpboot/disable = noper_source = 11cps = 100 2flags = IPv4}->->-> sudo service tftpd-hpa start sudo gedit /etc/default/tftpd-hpa->->-># /etc/default/tftpd-hpaTFTP_USERNAME="tftp"TFTP_DIRECTORY="/home/windoo/linux/tftpboot"TFTP_ADDRESS=":69"TFTP_OPTIONS="-l -c -s"->->-> sudo service tftpd-hpa restart2:验证测试:进入目录:/2移植阶段/3移植内核_zImage+设备树/3添加自己的开发版cparch/arm/boot/dts/windoo_bd.dtb /home/windoo/linux/tftpbootcparch/arm/boot/zImage /home/windoo/linux/tftpboot然后自动启动

IV、NFS挂载根文件系统

1:安装NFSsudo apt-get install nfs-kernel-server rpcbindsudo gedit /etc/exportsmkdir /home/windoo/linux/nfs在最后面加入:/home/windoo/linux/nfs *(rw,sync,no_root_squash)sudo /etc/init.d/nfs-kernel-server restart2:busybox进入我们早就配置完成的busybox文件夹下:2移植阶段/4构建根文件系统/busybox-1.29.0mkdir /home/windoo/linux/nfs/rootfsmake install CONFIG_PREFIX=/home/windoo/linux/nfs/rootfs//如果失败请查看是否是文件夹权限的问题 拷贝库文件(可以看出来步骤5中编译出来的根文件系统是不全的) 所谓的库文件,就是我们交叉编译器的库文件。cd /home/windoo/linux/nfs/rootfs mkdir lib cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib cp *so* *.a /home/windoo/linux/nfs/rootfs/lib/ -d --(这些库里有个特殊的文件:ld-linux-armhf.so.3,他是个软连接,需要把它变成原文件) cd /home/windoo/linux/nfs/rootfs/lib rm ld-linux-armhf.so.3 cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/lib cp ld-linux-armhf.so.3 /home/windoo/linux/nfs/rootfs/lib -- cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/lib cp *so* *.a /home/windoo/linux/nfs/rootfs/lib/ -dmkdir /home/windoo/linux/nfs/rootfs/usr/lib/ cd /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/lib cp *so* *.a /home/windoo/linux/nfs/rootfs/usr/lib/ -d创建其他文件夹 cd /home/windoo/linux/nfs/rootfs/ mkdir dev proc mnt sys tmp rootbootargs中的根文件系统路径设置,从nfs启动。 setenv bootargs 'console=ttymxc0,115200 root=/dev/nfs rw nfsroot=192.168.1.106:/home/windoo/linux/nfs/rootfs ip=192.168.1.50:192.168.1.106:192.168.1.1:255.255.255.0::eth0:off'完善根文件系统:cd /home/windoo/linux/nfs/rootfs i: mkdir etc mkdir etc/init.d touch etc/init.d/rcS vim etc/init.d/rcS---------#!/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/bin:$PATHLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib:/usr/libexport PATH LD_LIBRARY_PATHmount -amkdir /dev/ptsmount -t devpts devpts /dev/ptsecho /sbin/mdev > /proc/sys/kernel/hotplugmdev -s-------- chmod 777 etc/init.d/rcS ii:touch etc/fstabvim etc/fstab---------#<file system> <mount point> <type> <options> <dump> <pass>proc /proc proc defaults 0 0tmpfs /tmp tmpfs defaults 0 0sysfs /sys sysfs defaults 0 0--------- iii: touch etc/inittab vim etc/inittab#etc/inittab::sysinit:/etc/init.d/rcSconsole::askfirst:-/bin/sh::restart:/sbin/init::ctrlaltdel:/sbin/reboot::shutdown:/bin/umount -a -r::shutdown:/sbin/swapoff -a

V、NFS无法挂载文件系统

移步https://blog.csdn.net/helloworld573/article/details/108088174

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。