OrangePI One使用主线内核和主线Uboot指南
OrangePI One使用主线内核和主线Uboot指南
1下载配置工具链 linaro arm-linux-gnueabihf- V6.2
- 1 下载所需文件 创建文件将以下复制到文件中,并添加可执行权限 chmod 777 该文件
#!/bin/bash
COMPILE=gcc-linaro-6.2.1-2016.11-x86_64_arm-linux-gnueabihf.tar.xz
CROSS_COMPILE_URL=https://releases.linaro.org/components/toolchain/binaries/6.2-2016.11/arm-linux-gnueabihf/$COMPILEecho "**************************************"
echo "*********DownLoad start CROSS_COMPILE***************"
echo "**************************************"wget $CROSS_COMPILE_URL
echo "**************************************"sudo tar -xvf $COMPILE -C /opt
sudo mv /opt/$COMPILE /opt/gcc-linaro-6.2.1
- 2 配置环境变量
vim ~/.bashrc- shift+g 跳转到文件末尾添加环境变量
export PATH=/opt/gcc-linaro-6.2.1/bin:$PATHexport GCC_COLORS=auto ## 退出保存文件 ESC :wq
./bashrc 生效环境变量
2.下载uboot Kernel busybox
- 1 下载所需文件使用 创建文件将以下复制到文件中,并添加可执行权限 chmod 777 该文件
#!/bin/bash
UBOOT="u-boot-2020.01.tar.bz2"
U_BOOTURL="http://ftp.denx.de/pub/u-boot/"$UBOOT
KERNEL="linux-5.5.7.tar.xz"
KERNEL_URL="https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/"$KERNEL
BUSYBOX="busybox-1.28.4.tar.bz2"
URL="https://busybox.net/downloads"
echo "**************************************"
echo "**************************************"
echo "*********DownLoad start***************"
echo $UBOOT
echo $KERNEL
echo $BUSYBOX
echo "**************************************"
echo "**************************************"
echo "**************************************"wget $U_BOOTURL
wget $KERNEL_URL
wget $URL/$BUSYBOXtar -xvf $UBOOT
tar -xvf KERNEL
tar -xvf $BUSYBOX
echo "*********DownLoad OVER****************"
SD卡分区
sunxi 官方SD卡启动说明
主线版本使用的镜像分布
start | sector | size | usage |
---|---|---|---|
0KB | 0 | 8KB | Unused, available for an MBR or (limited) GPT partition table |
8KB | 16 | 32KB | Initial SPL loader |
40KB | 80 | - | U-Boot proper |
SD卡分区 前5M不用 分一个fat32分区 50M 后面全部给ext4分区
sudo fdisk -l ##查看所有磁盘设备
sudo fdisk /dev/sdx //or gparted 图形化分区工具
16G SD卡分区信息Device Boot Start End Blocks Id System
/dev/sdc1 31116 133515 51200 b W95 FAT32
/dev/sdc2 133516 31116287 15491386 83 Linux
没有gparted 安装sudo apt install gparted
sudo gparted /dev/sdx
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v5kNlbIE-1583408843416)(OrangePI One使用主线内核指南.assets/image-20200305193434411.png)]
分区格式化
sudo mkfs.vfat -F 32 /dev/sdx1 -n partName
sudo mkfs.ext4 /dev/sdx2
2编译uboot
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- make orangepi_one_defconfig ##我使用的是OrangePi ONE make -j4 ## Jx 根据所用的主机进行设置 有多少核心 就设置为多少
ERR INFO
scripts/dtc/pylibfdt/libfdt_wrap.c:130:21: fatal error: Python.h: No such file or directory
sudo apt-get install swig python-dev python3-dev
编译完成Uboot后会生成 u-boot-sunxi-with-spl.bin uboot-dtb.bin spl/sunxi-spl.bin
若使用u-boot-sunxi-with-spl.bin 进行烧写
sudo dd iflag=dsync oflag=dsync if=u-boot-sunxi-with-spl.bin of=/dev/sdx bs=1024 seek=8
若使用uboot-dtb.bin spl/sunxi-spl.bin 进行烧写
sudo dd if=spl/sunxi-spl.bin of=/dev/sdx bs=1024 seek=8
sudo dd if u-boot-dtb.bin of=/dev/sdx bs=1024 seek=40
sync ## 刷新缓冲区
3 编译kernel early printk 可设置可不设置
export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- make sunxi_defconfig ##全志的板子均使用该配置 make menuconfig #打开Early printk-> Kernel hacking-> arm Debugging //Depend on DEBUG_LL DEBUG_KERNEL DEBUG_KERNEL [*] Kernel debugging /Kernel hackingDEBUG_LL [*] Kernel low level debugging function /Kernel hacking/arm Debugging[*]Early printk /Kernel hacking/arm Debugging make zImage -j4 ## Jx 根据所用的主机进行设置 有多少核心 就设置为多少 make dtbs
busyBox编译
make menuconfig
->settings-> Cross compiler prefix arm-linux-gnueabihf-
make -j4 & make install
cd _install
mkdir proc dev var etc lib media root mnt sys opt home boot
查询busybox依赖库
readelf -d busybox | grep NEEDED0x00000001 (NEEDED) Shared library: [libm.so.6]0x00000001 (NEEDED) Shared library: [libc.so.6]
还必须引入ld-linux-armhf.so.3
进入到交叉工具链的目录下进行搜索
find . -name xxx
cp /opt/gcc-linaro-6.4.1/arm-linux-gnueabihf/libc/lib/xxx ./_install/lib/
cd ./dev/
sudo mknode console c 5 1
sudo mknod tty1 c 4 1
sudo mknod tty2 c 4 2
sudo mknod tty3 c 4 3
sudo mknod null c 1 3
cp examples/bootfloppy/etc/* ./_install/etc/ -rf
cp /opt/gcc-linaro-6.4.1/arm-linux-gnueabihf/libc/lib/* ./lib/ -arf
cp /opt/gcc-linaro-6.4.1/arm-linux-gnueabihf/lib/* ./lib/ -arf
vim etc/fstable
proc /proc proc default 0 0
sysfs /sys sysfs default 0 0
tmpfs /tmp tmpfs default 0 0
vim profile
# /etc/profile: system-wide .profile file for the Bourne shells
echo
echo -n "Processing /etc/profile... "
echo -n "Welcome to Filesystem in profile"
echo -n "CROSS_COMPILE=arm-linux-gnueabihf- V6.4"
export HOME=/root
export PS1="[root@ONE \W]# "
#create /dev device file
mdev -s
# no-op
echo "Done"
echo
NFS安装
sudo apt-get install nfs-kernel-server
vim /etc/exports
## 添加这个配置信息 并创建响应目录
##/home/目录 *(rw,sync,no_root_squash,no_subtree_check)
/home/linux/nfs *(rw,sync,no_root_squash,no_subtree_check)
sudo /etc/init.d/nfs-kernel-server restart ##重启NFS
NFS 启动
##宿主机设置一下
拷贝 最小跟文件系统到nfs目录下cp _install/* /home/linux/nfs -arf
## 板子的uboot中设置 setenv bootargs root=/dev/nfs nfsroot=10.0.0.10:/home/linux/nfs ip=10.0.0.123 init=/linuxrc console=ttyS0,115200 tftp 0x42000000 zImage tftp 0x43000000 sun8i-h3-orangepi-one.dtb bootz 0x42000000 - 0x43000000
EMMC
拷贝arch/arm/boot/zImage arch/arm/boot/dts/sun8i-h3-orangepi-one.dtb SD卡Vfat分区上
拷贝最小根文件系统到SD卡ext4分区 root=/dev/mmcblk0p2 rw rw必须加上否则文件系统为只读文件系统
setenv bootcmd "fatload mmc 0:1 0x42000000 zImage;fatload mmc 0:1 0x43000000 sun8i-h3-orangepi-one.dtb;bootz 0x42000000 - 0x43000000"
setenv bootargs root=/dev/mmcblk0p2 rw init=/linuxrc rootfstype=ext4,console=ttyS0,115200
saveenv
run bootcmd
OrangePI One使用主线内核和主线Uboot指南相关推荐
- OrangePi PC 玩Linux主线内核踩坑之旅(一)之制作第一个镜像
今天开始写一个专题<OrangePi PC 玩Linux主线内核>.一方面是记录自己在踩坑过程中的点点滴滴,另一方面是分享自己的心得.目前还不确定要写几期,希望大家多多捧场. 首先简单介绍 ...
- OrangePi PC 玩Linux主线内核踩坑之旅(四)之变身MP3播放器
主线内核Linux跑起来后,我们就可以用香橙派做一些简单的应用了.既然是简单的应用,那便是说基本上无需再添加额外的硬件即可实现相应的功能,"变身MP3播放器"便是一例.当然,耳机或 ...
- 全志V3S荔枝派zero10分钟制作TF启动卡,主线Linux,主线u-boot(超过10分钟博主直播吃奥利奥!!!)
一,初学者(比如我)刚拿到zero时,一定是一脸懵逼的,无从下手的,通过几篇代佬们写的文章+官网资料,了解了几种启动方式 1.Camdriod 官方SDK 2.主线Uboot + Bsp 内核 3.主 ...
- linux mint 屏保_Linux Mint 19.1 公开版正式发布:主线内核支持,全新壁纸
IT之家12月20日消息 Linux Mint 19.1"Tessa"现在已经正式发布供公众使用.新版本仍然基于Ubuntu 18.04 LTS,并将提供技术支持到2023年.Li ...
- 记一个老年机的逆向工程与主线linux移植 (二)—— 主线内核和postmarketOS
现在,这台手机已经有了一个可以调试的Bootloader.接下来可以去搜索以下其他大佬有没有什么现有的成果,免得做许多无用功. Linux Mailing List就是一个不错的地方,这里聚集着很多提 ...
- 指出Linux内核中boot,uBoot和Linux内核中涉及到的几个地址参数的理解
************************************************* arch/arm/Makefile //内核运行虚拟地址TEXTADDR = 0xC0008000 ...
- 引导魔女之力,征服星辰大海 主线篇: 重要事情说三遍: 推主线!推主线!!推主线!!! 简述: 1.本篇仅主线,涉及到的技巧全职业都可以参考; 2.考虑到萌新刚玩没有护卫者系统,故禁护
引导魔女之力,征服星辰大海 主线篇: 重要事情说三遍: 推主线!推主线!!推主线!!! 简述: 1.本篇仅主线,涉及到的技巧全职业都可以参考: 2.考虑到萌新刚玩没有护卫者系统,故禁护卫者以及不使用卡 ...
- OrangePi PC 玩Linux主线内核踩坑之旅(二)之制作镜像后的查遗补缺
一.查遗补缺之SSH连接到香橙派 上一篇我们讲到,为了可以使用SSH连接到香橙派,我们勾选了dropbear软件包,这是一个轻量级的SSH软件,包含了客户端和服务端[1].如何使用呢?在上一篇的末尾, ...
- OrangePi PC 玩Linux主线内核踩坑之旅(三)之设置静态IP地址
有了前文的基础,我们已经可以通过网络远程连接到香橙派了.但是香橙派的IP地址是通过DHCP获取的,说不定哪天就变了,我们需要对其设置静态IP地址,方便日后操作.先SSH连接到香橙派,编辑/etc/ne ...
最新文章
- 数据库高性能读写分离集群操作说明
- mybatis的typeAliases别名
- (转)Kafka 消费者 Java 实现
- 第二篇 服务消费者(rest ribbon)(Finchley版本)V2.0_dev
- CryptoQuant CEO:OKEx暂停提款对比特币价格影响不大
- 在线图片水平/垂直均等切割工具
- Mysql8.0 15安装后怎么打开_最新最全mysql8.0.15安装配置及连接Navicat教程
- Thymeleaf模板引擎详细介绍
- 『中安网培』***游戏过关攻略
- linux蓝牙安装程序,Linux 端蓝牙调试工具
- android packageManager用法
- 固克节能被终止创业板注册:年营收9.8亿 碧桂园创投是股东
- 解除计算机屏保密码设置密码,win10屏保密码怎么取消_如何取消Windows10锁屏密码...
- Vault: 基础教程之密码引擎及动态密码生成
- 为什么微软拼音会莫名其妙变繁体以及Junit的一些笔记
- 扎克伯格国会听证最新报道:5小时鏖战44议员!
- Android支付宝错误码62009,[payment支付宝:62009]未知错误;到底什么问题啊啊啊啊啊...
- JQuery Mobile(书籍分类检索)
- HTML+CSS+JS静态网页设计【篮球NBA介绍体育运动】web前端学生作业源码
- ACG-crcme1(★★★)
热门文章
- CSS3属性justify-content
- 5-Redis 高可用篇:你管这叫 Sentinel 哨兵集群原理(码哥)
- codeforces 766E 二进制思想dp
- 高数-导数--隐函数求导
- 【正点原子STM32连载】第四十七章 汉字显示实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
- 推荐重排算法之MMR
- 磊科路由器dns服务器无响应,磊科MG1200AC的DNS抽风问题
- 前端 | 如何用html编写动态时钟
- Speex 一个开源的声学回声消除器(Acoustic Echo Cancellation)
- 常网小站 骗子网站 大家小心别上当