【linux】内核+文件系统下载到开发板
K开发
欢迎转载,转载时请保留作者信息,谢谢。
博客园地址:http://www.cnblogs.com/embedded-tzp
Csdn博客地址:http://blog.csdn.net/xiayulewa
开发环境:http://www.cnblogs.com/embedded-tzp/p/4443876.html
参考了网上很多资料,没有对来源网站做记录,故来源已经不可考,在此表示歉意与感谢。
文章包括了下载的环境搭建,如何下载,具有一定参考性。
前期环境配置
Tftpd服务器搭建
Windows:
直接用tftpd32.exe 或者 tftpd64.exe, 图形界面,方便好用,适用于Ubuntu在虚拟机的情况。
Linux下配置tftpd:
适用于直接在Ubuntu系统下开发,而不经过虚拟机的情况。
- 安装tftp-server
sudo apt-get install tftpd-hpa
sudo apt-get install tftp-hpa(如果不需要客户端可以不安装)
tftp-hpa是客户端
tftpd-hpa是服务器端
2.配置TFTP服务器
sudo vim /etc/default/tftpd-hpa
将原来的内容改为:
TFTP_USERNAME="tftp"
TFTP_ADDRESS="0.0.0.0:69″
TFTP_DIRECTORY="tftp根目录" #服务器目录,如 /home/tang/wkdir/tftp ,需要设置权限为777,chomd 777
TFTP_OPTIONS="-l –c –s"
3.重新启动TFTP服务
sudo service tftpd-hpa restart
然后需要下载u-boot(bootloader), 此时只能通过jtag方式的jlink 下载。
虚拟机和windows网络配置
建议少用虚拟机,因为总是会出这样那样的问题,现在我已经直接在原生linux操作系统下开发, 问题少很多。
(可选)电脑端:禁用无线网卡。
配置:windows: 192.168.1.2(需要关闭防火墙,否则无法ping)
虚拟机:ubuntu: 192.168.1.6(当为桥接(虚拟机系统是独立的计算机)时,虚拟机系统需要手工设置ip,子网等,且要和宿主机器处于同一网段,这样才是一个局域网,虚拟机的操作系统和windows才能ping通,具体配置见下)
开发板:192.168.1.8
虚拟机ip配置:当虚拟机设置为桥接时,此时虚拟机系统需要手动设置ip,设置方法有两种:
1: sudo ifconfig eth0 192.168.1.6
2: 这种方式时记得备份原文件,虚拟机上不了网时试试还原下该文件。
sudo pluma /etc/NetworkManager/system-connections/Wired\ connection\ 1
修改内容:
[ipv4]
method=manual
#dns=8.8.8.8;
address1=192.168.1.6/24,192.168.1.2
然后sudo service network-manager restart
实际下载
因为没有使用虚拟机,所以电脑ip为192.168.1.2, 开发板ip为192.168.1.3。
ramdisk方式
根文件系统在内存,为ramdisk:
电脑端: 开启tftpd服务端程序
开发板端:
- tftp 0x30008000 uImage
- tftp 0x32000000 ramdisk.gz
- setenv bootargs root=/dev/ram0 initrd=0x32000000,0x200000 rootfstype=ext2 console=ttySAC0,57600 init=/linuxrc ip=192.168.1.3
- bootm 0x30008000
需要注意上述console使用ttySAC0/ ttySAC1的形式,新版本的内核使用ttyS是不行的。
bootargs参数使用查看如下文档:
src\Documentation\kernel-parameters.txt
U_boot 的 bootcmd 和bootargs参数详解:http://www.cnblogs.com/cornflower/archive/2010/03/27/1698279.html
initrd: src\Documentation\initrd.txt
nfs方式
电脑端:
尽量不要用虚拟机。
根文件系统在nfs(必须先配置虚拟机ip获取方式为手动):
Linux mint先菜单->系统管理->网络->设置静态ip, 或者sudo ifconfig eth0 192.168.1.2
修改 /etc/exports: 内容为:
/home/tang/wk-tzp/prj/nfs *(insecure,rw,sync,no_subtree_check,all_squash)
然后:
sudo exportfs -ra
sudo /etc/init.d/portmap restart # 有可能失败,不用理会
sudo /etc/init.d/nfs-kernel-server restart # 或者sudo service nfs-kernel-server restart
showmount -e :该命令看是否映射成功。
开发板端:
- tftp 0x30008000 uImage
- setenv bootargs root=/dev/nfs noinitrd rootfstype=nfs nfsroot=192.168.1.2:/home/tang/wk-tzp/prj/nfs/fs/ramdisk_fs console=ttySAC0,57600 ip=192.168.1.3:192.168.1.2:192.168.1.2:255.255.255.0::eth0:off
- bootm 0x30008000
需要注意上述console使用ttySAC0/ ttySAC1的形式,新版本的内核使用ttyS是不行的。
下载成功后,使用ls, pwd等命令,开发板就反馈给答案,折腾很伤神,但是总算会有点成就感了。
【linux】内核+文件系统下载到开发板的更多相关文章
- linux 3.4.103 内核移植到 S3C6410 开发板 移植失败 (问题总结,日本再战!)
linux 3.4.103 内核移植到 S3C6410 开发板 这个星期差点儿就搭在这里面了,一開始感觉非常不值得,移植这样的浪费时间的事情.想立刻搞定,然后安安静静看书 & coding. ...
- linux-3.0内核移植到fl2440开发板(以s3c2410为模板)
1.新建kernel文件夹,用于存放内核文件 [weishusheng@localhost ~]$ mkdir kernel 2.进入kernel,上传压并解压压缩文件 [weishusheng@lo ...
- 02.将uboot,kernel,rootfs下载到开发板上
转载,侵删 将uboot,kernel,rootfs下载到开发板上 1.为什么要下载 所谓下载,也称烧录,部署. 1.1.什么是u-boot Hi3518EV200 单板的 Bootloader 采用 ...
- linux内核文件系统:proc、tmpfs、devfs、sysfs简要介绍
linux内核文件系统:proc.tmpfs.devfs.sysfs proc:虚拟文件系统,在linux系统中被挂载与/proc目录下.里面的文件包含了很多系统信息,比如cpu负载. 内存.网络配置 ...
- Linux移植到自己的开发板(三)根文件系统
@ 目录 1 Linux内核配置 2 ramdisk制作 3 busybox配置 4 genext2fs生成镜像 为了快速调试,采用ramdisk进行根文件系统测试.要使内核能挂载ramdisk根文件 ...
- Linux移植到自己的开发板(二)UBOOT和Linux
@ 目录 一.uboot跳转到Linux 二. Linux内核启动之解压阶段 三. Linux内核启动之汇编阶段 插曲:关于Kconfig和Makefile 四. Linux内核启动之C语言阶段 五. ...
- linux-3.0内核移植到fl2440开发板(以MINI2440为模板)
我们的fl2440开发板使用的是s3c2440的芯片,与MINI2440十分相似,因此需要改动的地方不多,移植也比较容易. 1.[weishusheng@localhost kernel]$ sudo ...
- Linux移植到自己的开发板(一)环境搭建
环境搭建 vmware:VMware Workstation 15 Pro Linux系统:Ubuntu16.04 x64 1. 在Windows系统安装VMware15软件: 2. 网上下载并解压u ...
- Linux移植到自己的开发板(四)问题汇总
@ 目录 1 使ubuntu支持两个版本的编译链: 2 版本问题: 3 ubuntu版本的vscode下载网速太慢: 4 ubuntu占用空间过大 5 执行make zImage 出错 lzop: n ...
随机推荐
- Codeforces Round #250 (Div. 2)—A. The Child and Homework
好题啊,被HACK了.曾经做题都是人数越来越多.这次比赛 PASS人数 从2000直掉 1000人 被HACK 1000多人! ! ! ! 没见过的科技啊 1 2 4 8 这组数 被黑的 ...
- Linux 多线程通信
摘自资料(linux 与Windows不同) 线程间无需特别的手段进行通信,由于线程间能够共享数据结构,也就是一个全局变量能够被两个线程同一时候使用.只是要注意的是线程间须要做好同步,一般用mutex ...
- dpkg卸载和安装deb
今天在linux mint上安装个东西,没有安装完全,但是启动的时候能够启动,为了防止以后出现异常,想把它卸载了,在软件上点卸载,没有反应, 如下图: 没有指定卸载的包源,无奈使用sudo apt-g ...
- Oracle自带的exception
存储过程中自带的exception: --查询人员资料历史 BEGIN SELECT * INTO Po_Sac01 FROM Sac01 WHERE Aac001 = Pi_Aac001 ); EX ...
- Hadoop集群的安装与配置(centos 6.5)
一.Hadoop搭建准备(centOs6.5 且每个系统都要有同一个用户,如:hadoop) 1.IP的配置 包括Master和Slaves的IP配置,之间能够相互ping通: 例如: ...
- POJ 1379 Run Away 【基础模拟退火】
题意:找出一点,距离所有所有点的最短距离最大 二维平面内模拟退火即可,同样这题用最小圆覆盖也是可以的. Source Code: //#pragma comment(linker, "/ST ...
- Chapter 8 工厂方法模式
工厂方法模式实现时,客户端需要决定实例化哪一个工厂来实现运算类,选择判断的问题还是存在的,也就是说,工厂方法把简单工厂的内部逻辑判断移到了客户端代码来进行.你想要加功能,本来是改工厂类的,而现在是修改 ...
- ubuntu12.04中如何设定中文输入法
安装 ibus 终端输入:sudo apt-get install ibus ibus-clutter ibus-gtk ibus-gtk3 ibus-qt4 启动 ibus 终端输入 : im-s ...
- android如何添加桌面图标和卸载程序后自动删除图标
android如何添加桌面图标和卸载程序后自动删除桌面图标,这是一个应用的安装与卸载过程对桌面图标的操作,下面与大家分享下具体是如何实现的,感兴趣的朋友可以参考下哈 1:创建图标如下 Intent i ...
- 正则表达式验证数字、汉字、电话号码,email,整数,浮点数
验证数字的正则表达式集 验证数字:^[0-9]*$验证n位的数字:^\d{n}$验证至少n位数字:^\d{n,}$验证m-n位的数字:^\d{m,n}$验证零和非零开头的数字:^(0|[1-9][0- ...