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 ...
最新文章
- SET NOCOUNT ON 作用
- Netty 框架学习(一):初始netty
- Binary Tree Traverasl with OO and Stack
- 电商三巨头交成绩单,这次拼多多输了吗?
- Numpy的切片操作
- Exynos4412 Uboot 移植(六)—— 相关知识补充
- 2003 r2 64 iis php mysql_关于在win2003中,iis+php+mysql 配置的问题
- linux系统下idea打包apk教程,intellij idea14打包apk文件和查看sha1值
- 阿里云高级技术专家王晨:云原生数据库PolarDB技术解密
- android实现模拟微信调用相机和手机图库更换头像
- 我的在校项目:校园类app
- clover直接进windows_从u盘启动安装mac os,没有显示clover,直接进入windows
- 现代程序设计 homework-06
- 简单获取速卖通aliexpress商品详情
- cobaltstrike如何安装使用(包含CS联动MSF详细用法!)? (゚益゚メ) 渗透测试
- 我的阿里云盘资源搜索引擎首次试运行
- 颜色相关直方图(color correlogram)
- 10款相似图片搜索引擎
- Linux:进程管理 | 进程创建 | 进程终止 | 进程等待 | 进程替换
- 软件公司如何才能接到项目
热门文章
- 如何创建自已的电子邮箱?国际商务邮箱那个好?
- Java Security Architecture--Java安全体系技术文档翻译(三)
- 基于注入式木马病毒(浏览器绑架)实现及防御方法的研究
- Day69_SparkSQL(一)
- 多层Android锁机样本分析
- 论文笔记 [5] SRCNN
- 计算机职称级别一览表,2017高会《职称计算机》Word 2003:多级列表
- 每日一学-006 手机端rem适配(未完成)
- 三菱服务器有电源不显示,为什么打开电动车电源,仪表不显示?老师傅告诉你!...
- html5中的meter标签改变颜色规则