Linux心得
这个系例文章是记录自己,在学习linux过程中,遇到并解决的问题。以及一些必备知识点的理解,希望能对看到的你有所帮助。
如果你觉得S学者写的不错的话,欢迎点赞评论。
S5P100开发板
- Linux心得
- 前言
- 一、连接前准备
- S5P100开发板与ubuntu交叉编译资源
- 1.ubuntu安装nfs
- 2.ubuntu安装tftp
- 3.ubuntu安装arm-linux-gcc
- 4.ubuntu安装VMware Tools
- 5.ubuntu安装smb(非必须)
- 6.串口驱动下载
- 二、总配置流程
- 1.具体步骤:
- 三、功能测试
- 1.播放音乐
- 2..交叉编译
- 总结
前言
本文使用linux为S5P100加载(Kernel)内核,挂载根文件系统。通过ubuntu与开发板进行交叉编译。
具体过程,
大致流程:
板子于电脑串口连接后,通电 U-boot加载引导程序。 并且利用tftp在Ubuntu下载zlmage(内核)到板子上 ,在通过nfs共享访问共享目录,作为板子的根文件系统。
一、连接前准备
- 具体文档点击链接下载,内部含有保姆级步骤
S5P100开发板与ubuntu交叉编译资源
根据上述的流程,我们需要提前在ubuntu以及电脑上提前配置好环境。
ubuntu: nfs、tftp、arm-linux-gcc、VMware Tools 。
Windows:串口驱动。
1.ubuntu安装nfs
文件系统共享服务:共享一个文件目录,作为板子的根文件系统。
2.ubuntu安装tftp
文件传输协议:板子通过uboot向ubuntu请求下载内核映像。
3.ubuntu安装arm-linux-gcc
GCC编译器交叉编译工具链:将源代码编译为ARM体系结构上的可执行文件。
4.ubuntu安装VMware Tools
VMTools 可以提升虚拟机的玩机体验,其中对于文件传输的提升。在本次实验中,我们在Windows下拖拽实验要用的压缩包到共享文件夹下,Ubuntu中可以直接进行解压和复制。
-
具体安装步骤,见博客:
Linux中Ubuntu安装VMware Tool
5.ubuntu安装smb(非必须)
共享文件,类似于VMware Tools的文件共享。
实现Window 于ubuntu的共享。
6.串口驱动下载
压缩包与上几个文件放在一起。 (free)
二、总配置流程
1.具体步骤:
- 在 ubuntu 中将 zImage 复制到 /var/lib/tftpboot 目录下。
此文件会在开发板启动时动态自动通过网络以 tftp 网络协议下载到开发板的内存中。
sudo cp /mnt/hgfs/shared/zImage /var/lib/tftpboot
- 在 ubuntu 配置根文件系统。
解压filesystem.tar.gz 到 /opt 下,成为 /opt/filesystem。
sudo tar xzf /mnt/hgfs/shared/filesystem.tar.gz -C /opt
启动 nfs:
sudo service nfs-server start
- 接线说明、串口配置
aRS232 串口线,一端接开发板的 COM1 接口,另一端 接电脑。
电脑无RS232接口,用一根USB-RS232转接
b电源线选用12V
c板子接网线
串口配置如下图:
4. 配置开发板 IP,及其他参数
查看网卡信息:ifconfig
u-boot 的 print 命令可以打印参数信息,如下:
SMDKC100 # print
bootdelay=5 # 启动延时秒数,在计数到 0 前回车可进入 u-boot 命令行
baudrate=115200 # 串口波特率
netmask=255.255.255.0 # 子网掩码
ethaddr=11:22:33:44:55:46 # MAC 地址
serverip=192.168.31.175 # 服务器 IP,即 ubuntu 桥接网卡的 IP
ipaddr=192.168.31.176 # 开发板的 IP,必须与服务器 IP 在同一网段
gatewayip=192.168.31.1 # 网关 IP
bootargs=root=nfs nfsroot=192.168.31.175:/opt/filesystem,v3 ip=192.168.31.176 init=/linuxrc console=ttySAC0,115200 # 启动参数
set=gatewayip 192.168.31.1 # 网关 IP
bootcmd=tftp 20800000 zImage;bootm 20800000 # 启动命令
stdin=serial # 标准输入
stdout=serial # 标准输出
stderr=serial # 标准错误Environment size: 372/16380 bytes
需要在 u-boot 命令行下配置的有:
SMDKC100 # set serverip 192.168.40.77 #改成自己的ip哦
SMDKC100 # set ipaddr 192.168.40.177 # 开发板 IP
SMDKC100 # set gatewayip 192.168.40.1 #网关
SMDKC100 # set bootargs root=nfs nfsroot=192.168.40.77:/opt/filesystem,v3 ip=192.168.40.177 init=/linuxrc console=ttySAC0,115200
SMDKC100 # set bootcmd tftp 20800000 zImage\;bootm 20800000 # ; 使用转义 \;
SMDKC100 # set bootcmd 'tftp 20800000 zImage;bootm 20800000' # 因为包含 ; 号,所以使用 '' 括住参数
SMDKC100 # save # 保存以上参数配置
测试开发板与 ubuntu 是否网络相通
SMDKC100 # ping 192.168.40.77 #ping 自己的ip哦
ping过后可能停不下来。正常,重启一下吧。下一次直接输入下面命令
启动系统
SMDKC100 # boot
三、功能测试
1.播放音乐
- ubuntu 复制 madplayer 目录到 /opt/filesystem 下:
sudo cp -R /mnt/hgfs/shared/madplayer /opt/filesystem
- 开发板进入 madplayer 目录,播放歌曲,插耳机听:
cd madplayer./madplayzhou.mp3
如下所示:《一路向北》
2…交叉编译
1.在Ubuntu下正常编写一个c程序
vi test.c
//写个程序
//用arm-linux-gcc进行编译
arm-linux-gcc test.c
2.开发板上运行这个程序
./a.out
如下所示:本来想送你们一个大爱心的,板子不支持这个符号
总结
在linux学习上又前进了一小步,对于一个一个终端的形成有了更好的理解。bootloader 引导程序,kernel 内核,rootfs 根文件系统。缺一不可,为了提高用户体验的图形界面、应用程序。
点个关注不迷路,S学长会耍酷。