openwrt运行linux软件,使用OpenWrt开发嵌入式Linux(二):先让系统跑起来(使用initramfs)...
安装相关工具(推荐使用ubuntu 16及以上版本)
sudo apt install gcc binutils bzip2 flex python perl make diffutils unzip gawk subversion zlib1g-dev quilt
下载源码
git clone https://github.com/openwrt/openwrt.git
cd openwrt
开始编译前的准备工作——更新软件包
./scripts/feeds update -a
./scripts/feeds install -a
配置 —— menuconfig
make menuconfig
Target System (Samsung s3c24xx/s5pv210) --->
Subtarget (s5pv210 based boards) --->
Target Profile (TQ210) --->
Target Images --->
[*] ramdisk --->
Global build settings --->
Kernel build options --->
[*] Compile the kernel with early printk
选择TQ210硬件平台
选择ramdisk,使用内存文件系统启动
选中内核早期调试打印
配置内核 —— make kernel_menuconfig
make kernel_menuconfig
Boot options --->
[*] Use appended device tree blob to zImage (EXPERIMENTAL)
Kernel hacking --->
[*] Kernel low-level debugging functions (read help!)
Kernel low-level debugging port (Use Samsung S3C UART 0 for low-level debug) --->
选中将dtb追加到zImage后面
根据自己的开发板选择调试串口,TQ210使用的是UART0
在这里可以把一些暂时不需要的配置选项给去掉
编译
make -j4
编译成功,我们最终需要的内核如下
bin/targets/samsung/s5pv210/openwrt-samsung-s5pv210-tq210-initramfs-kernel.bin
这里编译出来的内核是uImage格式,如果需要zImage格式,请修改target/linux/samsung/image/Makefile,将uImage none去掉
define Device/Default
PROFILES = Default
KERNEL_NAME := zImage
KERNEL := kernel-bin | append-dtb
endef
使用tftp下载内核到设备的内存直接运行
我这里使用我自己移植的barebox(一个代码风格类似Linux的Bootloader)来运行内核
barebox 2018.04.0-00135-g476dd0f26-dirty #5 Fri Apr 13 01:21:34 CST 2018
Board: Embedsky tq210
netconsole: registered as netconsole-1
dm9000 dm90000: Found DM9000B at i/o: 0x88000000
mdio_bus: miibus0: probed
nand: NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit), 1024MiB, page size: 2048, OOB size: 64
Scanning device for bad blocks
Bad eraseblock 1402 at 0x00000af40000
registered as fbconsole0
malloc space: 0x2bf00000 -> 0x2fefffff (size 64 MiB)
refclk: 24000 kHz
armclk: 1000000 kHz
a2mclk: 200000 kHz
hclk_dsys: 166750 kHz
pclk_dsys: 83375 kHz
hclk_psys: 133400 kHz
pclk_psys: 66700 kHz
running /env/bin/init...
nv variable modified, will save nv variables on shutdown
Hit m for menu or any other key to stop autoboot: 0
type exit to get to the menu
barebox@Embedsky tq210:/
使用tftp命令下载内核。Barebox支持ramfs,这里直接下载到ramfs中
barebox@Embedsky tq210:/ tftp openwrt-samsung-s5pv210-tq210-initramfs-kernel.bin
WARNING: net: warning: No MAC address set. Using random address fa:09:66:1f:1a:d7
eth0: 100Mbps full duplex link detected
T [#################################################################]
Barebox支持将文件作为命令直接执行
barebox@Embedsky tq210:/ ./openwrt-samsung-s5pv210-tq210-initramfs-kernel.bin
Image Name: ARM OpenWrt Linux-4.14.32
Created: 2018-04-13 14:09:27 UTC
OS: Linux
Architecture: ARM
Type: Kernel Image
Compression: uncompressed
Data Size: 3876720 Bytes = 3.7 MiB
Load Address: 20008000
Entry Point: 20008000
Loading U-Boot uImage './openwrt-samsung-s5pv210-tq210-initramfs-kernel.bin'
commandline: mtdparts=nand:256k(nand0.barebox),128k(nand0.bareboxenv),4M(nand0.kernel),-(nand0.rootfs)
arch_number: 0
nv variables modified, saving them
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.14.32 (zjh@zjh-GE60-2PL) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r6740-31293c675c)) #0 PREEMPT Fri Apr 13 14:09:27 2018
[ 0.000000] CPU: ARMv7 Processor [412fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: Embedsky TQ210 based on S5PV210
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] random: get_random_bytes called from start_kernel+0x84/0x3c4 with crng_init=0
......
BusyBox v1.28.3 () built-in shell (ash)
_______ ________ __
| |.-----.-----.-----.| | | |.----.| |_
| - || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
-----------------------------------------------------
OpenWrt SNAPSHOT, r6742-c71b8121ef
-----------------------------------------------------
=== WARNING! =====================================
There is no root password defined on this device!
Use the "passwd" command to set up a new password
in order to prevent unauthorized SSH logins.
--------------------------------------------------
root@OpenWrt:/#
openwrt运行linux软件,使用OpenWrt开发嵌入式Linux(二):先让系统跑起来(使用initramfs)...相关推荐
- 嵌入式linux软件专利,一种嵌入式Linux操作系统网络加速运行的系统及方专利_专利查询 - 天眼查...
1.一种嵌入式Linux操作系统网络加速运行的系统,其特征在于,主要包括以下单元:应用程序单元.Lwip函数库单元.系统接口单元.Linux系统单元.底层硬件接口单元.硬件平台单元.物理硬件网络设备单 ...
- 免环境搭建用QT开发嵌入式Linux工业平板电脑界面
免环境搭建如何用QT开发嵌入式Linux工业平板界面 免环境搭建如何用QT开发嵌入式Linux工业平板界面 QT作为一种垮平台的开发语言工具,可以在众多嵌入式平台开发界面显示.项目和产品开发上,对QT ...
- 使用Go语言交叉编译开发嵌入式Linux应用程序
文章目录 目的 基础说明 编译生成嵌入式Linux应用程序 二进制文件瘦身 与C语言混合进行开发 总结 目的 Go语言非常适合用来开发存储空间不紧张的嵌入式Linux设备应用程序,可以在性能需求和开发 ...
- 使用VisualStudio2017开发嵌入式Linux应用程序
曾几何时,在开发嵌入式Linux时,先在PC上安装一个Ubuntu虚拟机,然后桥接网络,安装Vmwaretools,设置共享文件夹或者配置ftp服务器来实现PC和Ubuntu的文件交换-,改代码在Wi ...
- linux端口带卡,基于嵌入式Linux的接口转换卡设计
接口总线为一群互相连接的设备提供一种有效的通信方式,它是自动测试系统发展的标志,可以说接口总线技术发展的历史就是自动测试系统发展史,接口总线技术发展的水平标志着自动测试发展的水平.本文提出的接口转换方 ...
- 直播软件源码开发,直播间内消息系统的实现
在直播软件源码开发过程中,消息系统是非常关键的,无论是直播间内的消息还是平台内的消息,都关系着用户的使用体验,所以今天我们先用一个简单的"拉"模型搭建一个简单的直播间消息系统. 基 ...
- redis,memcached到nginx,底层网络io中剥离精髓丨C/C++Linux丨C++后端开发丨Linux服务器开发丨底层原理
redis,memcached到nginx,底层网络io中剥离精髓 1. redis单线程网络的优缺点 2. memcached多线程网络的并发优势 3. nginx多进程网络的优势 视频讲解如下,点 ...
- 尚观linux视频配套教程,尚观最新嵌入式Linux基础视频教程 98集嵌入式Linux巨制视频教程 新手必备...
尚观最新嵌入式Linux基础视频教程 98集嵌入式Linux巨制视频教程 新手必备 5.jpg (67.09 KB, 下载次数: 0) 2018-4-16 09:34 上传 1.jpg (44.17 ...
- 我的智能充电桩开发笔记(二):系统硬件电路设计概述
2.我的智能充电桩开发笔记(二):系统硬件电路设计概述 2 系统硬件电路设计 ∗ ∗ ∗ ∗ 开 放 全 部 硬 件 , 软 件 设 计 资 料 , 如 硬 件 原 理 图 ,
- 《嵌入式 Linux应用程序开发标准教程(第2版)》——第1章 Linux快速入门 1.1 嵌入式Linux基础...
本节书摘来自异步社区<嵌入式 Linux应用程序开发标准教程(第2版)>一书中的第1章,第1.1节,作者 华清远见嵌入式培训中心,更多章节内容可以访问云栖社区"异步社区" ...
最新文章
- 关于自注意力机制的思考
- MPB:亚热带生态所谭支良、焦金真等-​反刍动物瘤胃样品采集与保存
- TensorRT是NVIDIA开发的深度学习推理工具,只支持推理,不支持训练 引
- 使用golang的for打印三角形
- 越努力越幸运--动态数组vector
- 21.IO-multiplexing方式实现Netcat
- 非极大值抑制(Non-Maximum Suppression,NMS)(转)
- 创建一个war类型的maven项目
- java 导出word简历_java导出生成word(类似简历导出)
- 记一次Maven发布Jar包中文乱码解决方法
- 西安python程序员薪资_最新程序员薪资统计来了!Java均薪16K,Python22k!你拖后腿了吗?...
- 什么是量子安全?量子计算时代下的基本安全技术
- java导出excel文件(标题为中文乱码)
- 知乎上超多赞同的自学网站,每天学习15分钟,受益终身!
- rn+android+sdk,RN与Android原生交互
- javax.servlet.ServletException: java.lang.NoSuchMethodException
- Form表单及模板引擎
- 模电——电源与地之间并联电容的作用
- 淘宝网页显示不正常,其它网站正常显示---解决办法
- java 30分钟_java 实现当前时间加减30分钟的时间代码