Tips

提高文件夹以及文件夹内容的访问权限

1
sudo chmod -R 777 filename

清除上次生成的编译环境,非常重要

1
make clean

Github 代理

1
git clone https://ghproxy.com/https://github.com/stilleshan/ServerStatus

img

更新缓存

执行下面的命令:

1
2
sudo apt-get update
sudo apt-get upgrade

B1:安装依赖

1
2
3
4
5
6
7
8
9
10
11
12
sudo apt-get install gcc make cmake rsync wget unzip build-essential git bc swig libncurses-dev libpython3-dev libssl-dev python3-distutils android-tools-mkbootimg -y

sudo apt install vim

sudo apt install python-is-python3
sudo apt install python2
sudo apt install python2.7-dev
rm /usr/bin/python
sudo ln -s /usr/bin/python2.7 /usr/bin/python

sudo apt install gcc-9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100

B2:交叉编译器

首先需要安装交叉编译链:

此处为获取7.2.1版本,您可获取其他版本或者通过链接直接下载

BASH

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
wget http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
tar -vxJf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
sudo chmod -R 777 filename /opt

如果这一步显示调用错误,拖拽过去(一般不好用,建议拖拽)

sudo cp -r ./gcc-linaro-7.2.1-201711-x86_64_arm-linux-gnueabi /opt/

#如拖拽不过去使用,后再次尝试



sudo chmod -R 777 filename /opt

sudo vim /etc/bash.bashrc

在文件末尾 添加以下内容

1
PATH="$PATH:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin"

添加完毕

使路径生效

1
source /etc/bash.bashrc

此时可用 arm-linux-gnueabi-gcc -v进行测试;若普通用户状态下没有成功,通过 sudo su切换到root用户再尝试;

B3:拉取数据

1
2
3
4
5
6
7
8
新建文件夹
git clone https://gitee.com/LicheePiNano/u-boot.git -b nano-v2018.01
cd u-boot
# 查看分支
git branch -a
# 切换到 Nano 分支
git checkout nano-v2018.01

img

B3-1:修正源码错误

1
请使用界面修改

img

#include “sunxi-u-boot.dtsi”
前面多了
修改scripts/Makefile.lib第321行后问题解决

B4:配置U-BOOT

BASH

1
2
3
4
5
6
7
8
9
10
# 此处告知make采用arm-linux-gnueabi下的所有交叉编译工具,目标架构为Arm,设定各项默认配置为 

#若不带spi-flash的板子
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_defconfig

# nano 的spiflash支持版,请换成 f1c100s_nano_uboot_defconfig

# 进行可视化配置

make ARCH=arm menuconfig

TODO

B5:开始编译

PLAINTEXT

1
2
3
# 开始编译

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8

B6:大功告成

image-20230425000913961

img

ERRQ1:安装VIM

Vim 显示行号
需要修改vim配置文件vimrc。
在默认情况下,用户宿主目录(~)中是没有此文件的,需要在当前用户的宿主目录中手工建立,即使用下面的命令:

1
2
3
4
5
6
7

vim ~/.vimrc
在打开的vimrc文件中最后一行输入:

set number 或者 set nu,

然后保存退出。再次用vim打开文件时,就会显示行号了。

ERRQ2:更改Python

PLAINTEXT

1
2
make[2]: *** [scripts/Makefile.build:425:scripts/dtc/pylibfdt] 错误 2

方法

1
2
3
4
5
6
7
8
9
10
//为啥要用版本2 因为不装会报错
sudo apt install python2

//查询当前版本
python -V

//根据对应的python版本安装`python-dev`(我的版本是python2.7)
sudo apt install python2.7-dev

rm /usr/bin/python

ERRQ3:更改gcc

问题

1
cripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc’; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here

方法

1
2
3
4
5
6
7
8
9
gcc --version
下载gcc-9
sudo apt install gcc-9

将gcc版本都切换为9
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100

查看当前gcc版本
gcc --version

img

1
2
3
4
清除上次生成的编译环境,非常重要
sudo make distclean

重新编译Linux内核

参考:https://it.cha138.com/mysql/show-102969.html

ERRQ4:DTS_ERR

1
2
3
4
5
6
7
DTC arch/arm/dts/suniv-f1c100s-licheepi-nano.dtb

Error: arch/arm/dts/.suniv-f1c100s-licheepi-nano.dtb.pre.tmp:59.1-10 syntax error

#include “sunxi-u-boot.dtsi”
前面多了
修改scripts/Makefile.lib第321行后问题解决

作者: JINCHANG WU
链接: https://hinuohui.com/2023/04/25/%E8%8D%94%E6%9E%9D%E6%B4%BENano_%E6%8A%98%E8%85%BE%E7%AF%87/
来源: 诺志辉-小辉辉,说外面很大!
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。