1、使用虚拟机安装ubuntu
链接:获取ubuntu
链接:获取虚拟机应用
1.1 新建虚拟机向导
(1) [勾选]安装程序光盘映像文件
(2) 个性化linux:填写自己的linux机器名称,用户名,密码,确认密码
我这里填写为:book,book,linjie,linjie
(3) 选择安装位置
(4) 根据自己情况,分配磁盘容量
我这里分配32GB
(5) 根据自己机器性能,自定义硬件
内存:
处理器:
网络适配器:
(1)桥接模式,ubuntu相当于一台独立的电脑,可以通过路由器连接外网。
(2)NAT模式:ubuntu连接windows的网络,可通过windows电脑分享的网络,连接外网。
(6) 进入ubuntu安装界面,按照向导随意配置。
1.2 安装一些便捷的工具
(1) 切换到root
sudo -i
(2) 更新源:
apt-get update
(3) 安装ssh服务器
apt-get install ssh
(4) 命令行输入观察ubuntu的ip:
ifconfig (没这个工具的话apt-get install net-tools)
或
ip -a
(5) windows端下载远程工具:putty
链接:获取putty
(6) 使用putty登陆ubuntu验证ssh服务是否正常
最近编辑记录 LinjieGuo (2019-11-03 15:51:03)
离线
2 根据荔枝派教程搭建开发环境
链接:荔枝派nano的教程链接
2.1 安装交叉编译工具链
(1)新建一个文件夹存放f1c100s的开发工具
mkdir f1c100s
进入该文件夹
cd f1c100s
(2)获取交叉编译工具链
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
(3)解压
tar -vxJf gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz
(4)安装
sudo cp -r ./gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi /opt/
(5)修改环境变量
-->1.安装vim:
sudo apt-get install vim
-->2.使用vim编辑
sudo vim /etc/bash.bashrc
-->3.在文件末尾 添加以下内容:
PATH="$PATH:/opt/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin"
-->4.使路径生效
source /etc/bash.bashrc
-->5.测试
arm-linux-gnueabi-gcc -v
最近编辑记录 LinjieGuo (2019-11-03 16:58:33)
离线
3 编译uboot
-->安装git工具
sudo apt-get install git
3.1 获取uboot源码
荔枝派官方教程里,源码位于git站上,因为国内git过于慢,建议使用下载工具打包下载。
(1)打开链接 https://github.com/Lichee-Pi/u-boot
(2)选择分支:点击Branch->nano-lcd800480
(3)使用下载工具打包下载
3.2 uboot.zip解压
(1)新建文件夹uboot
mkdir uboot
(2)解压zip文件
unzip uboot.zip
(3)进入目录
cd u-boot
(4)查看分支
git branch -a
(5)切换到 Nano 分支
git checkout nano-v2018.01
(6)编译uboot
-->1 安装make
sudo apt install make
-->2 使用nano配置
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_spiflash_defconfig
出现错误提示:
①recipe for target 'scripts/basic/fixdep' failed
②/bin/sh: 1: cc: not found
安装如下工具:
sudo apt-get install libncurses5-dev
sudo apt-get install gcc
继续配置命令
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- licheepi_nano_spiflash_defconfig
-->3 体验可视化配置
make ARCH=arm menuconfig
-->4 编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
如果你的CPU支持8线程,则-j4可以修改为-j8,提高编译速度。
-----------------------------------------------
出现错误:
①recipe for target 'scripts/dtc' failed
②recipe for target 'scripts' failed
-----------------------------------------------
安装如下工具:
apt-get install device-tree-compiler
-----------------------------------------------
继续编译:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
-----------------------------------------------
依然出现错误,瞎安装:
sudo apt-get install libncurses5-dev libncursesw5-dev
sudo apt-get install swig python-dev python3-dev
-----------------------------------------------
继续编译:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
居然好了。
得到u-boot-sunxi-with-spl.bin文件。
离线
4 编译linux内核
4.1 获取linux内核源码
(1)打开链接:https://github.com/Icenowy/linux.git
(2)选择分支:点击Branch->f1c100s-480272
(3)打包下载
(4)传到ubuntu中,解压
unzip f1c100s-480272lcd-test.zip
(5)下载别人配置好的配置文件
http://dl.sipeed.com/LICHEE/Nano/SDK/config
复制下载的文件到linux源码根目录,并改名字为".config"
(6)体验可视化配置
make ARCH=arm menuconfig
(7)编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
-----------------------------------------------
出现错误:
scripts/extract-cert.c:21:10: fatal error: openssl/bio.h: 没有那个文件或目录
安装工具:
sudo apt-get install libssl-dev
-----------------------------------------------
继续编译:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
成功编译,生成的 zImage 在 arch ‣ arm ‣ boot 目录下
离线
5 编译根文件系统
5.1 安装依赖
apt-get install linux-headers-$(uname -r)
5.2 使用buildroot编译根文件系统
(1)获取buildroot源码
wget https://buildroot.org/downloads/buildroot-2017.08.tar.gz
tar xvf buildroot-2017.08.tar.gz
cd buildroot-2017.08/
(2) 配置bulidroot
make menuconfig
-----------------------------------------------
Target options --->
Target Architecture Variant (arm926t) ---> // arm926ejs架构
Enable VFP extension support // Nano 没有 VFP单元,勾选会导致某些应用无法运行
Target ABI (EABI) --->
Floating point strategy (Soft float) ---> // 软浮点
(2)下载依赖工具包
https://pan.baidu.com/s/1_tBdX9K7fOkH9JdXZ_MdiQ
下载完之后,解压后复制到"buildroot-2017.08/dl/"下,没有dl文件夹可自行创建。
也可以不下载此工具包,但是buildroot自动更具需求下载这些工具包也许很慢。
(3)编译
make
-----------------------------------------------
出现错误:
make[2]: g++: Command not found
安装G++工具:
sudo apt-get install g++
-----------------------------------------------
继续编译:
编译成功!
-----------------------------------------------
(4)查看rootfs文件的大小
ls -l output/images/rootfs.tar
离线
6 打包出烧写spi flash的bin文件
先将已经被解压过的文件,统统存放在一个文件夹里,防止干扰视线。
mkdir Pack
mv buildroot-2017.08.tar.gz Pack
mv f1c100s-480272lcd-test.zip Pack
mv gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz Pack
mv uboot.tar Pack
如果想保持官方路线,将当前根据官方操作流程而产生的文件打包,备用
tar -cf UKB.tar buildroot-2017.08 gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi linux-f1c100s-480272lcd-test u-boot
mv UKB.tar Pack
6.1 修改uboot以适配spi flashd
(1)修改源码
在uboot源码目录下 进入 ./include/configs/,修改 suniv.h
#define CONFIG_BOOTCOMMAND "sf probe 0:50000000; " \
"sf read 0x80C00000 0x100000 0x4000; " \
"sf read 0x80008000 0x110000 0x400000; " \
"bootz 0x80008000 - 0x80C00000"
(2)更改配置
回到 uboot 源码一级目录, 进入TUI配置
make ARCH=arm menuconfig
取消勾选 [] Enable a default value for bootcmd
勾选 [v] Enable boot arguments;
在下方一项中填入 bootargs 参数:
console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype=jffs2
(3)回到根目录重新编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
6.2 修改dts以适配spi flash
(1)修改源码
修改内核源码目录下的 ./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
将原来的&spi0{...}替换为:
&spi0 {
pinctrl-names = "default";
pinctrl-0 = <&spi0_pins_a>;
status = "okay";
spi-max-frequency = <50000000>;
flash: w25q128@0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "winbond,w25q128", "jedec,spi-nor";
reg = <0>;
spi-max-frequency = <50000000>;
partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;
partition@0 {
label = "u-boot";
reg = <0x000000 0x100000>;
read-only;
};
partition@100000 {
label = "dtb";
reg = <0x100000 0x10000>;
read-only;
};
partition@110000 {
label = "kernel";
reg = <0x110000 0x400000>;
read-only;
};
partition@510000 {
label = "rootfs";
reg = <0x510000 0xAF0000>;
};
};
};
};
(2)重新编译设备树
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs -j4
6.3 修改内核配置
(1)make ARCH=arm menuconfig
(2)勾选 File systems ‣ Miscellaneous filesystems ‣ Journalling Flash File System v2 (JFFS2) support
(3)修改源码下的 ./drivers/mtd/spi-nor.c
vi ./drivers/mtd/spi-nor/spi-nor.c
注释掉以下一行:
//{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },
在这一行下面增加一项:
{ "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, 0) },
(4)重新编译内核
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
6.4 打包生成用于少些spiflash的bin文件
(1)在f1c100s目录下,新建文件夹rootfs
mkdir rootfs
(2)复制rootfs.tar到rootfs文件夹中
cp buildroot-2017.08/output/images/rootfs.tar rootfs/
(3)解压rootfs目录下的rootfs.tar
cd rootfs
sudo tar -xvf rootfs.tar
(4)删除rootfs.tar
sudo rm rootfs.tar
(5)回到f1c100s目录,编写打包命令
cd ..
vim BuildMyImage.sh
填写如下内容:
#!/bin/sh
dd if=/dev/zero of=f1c100s_spiflash_16M.bin bs=1M count=16 &&\
dd if=u-boot/u-boot-sunxi-with-spl.bin of=f1c100s_spiflash_16M.bin bs=1K conv=notrunc &&\
dd if=linux-f1c100s-480272lcd-test/arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dtb of=f1c100s_spiflash_16M.bin bs=1K seek=1024 conv=notrunc &&\
dd if=linux-f1c100s-480272lcd-test/arch/arm/boot/zImage of=f1c100s_spiflash_16M.bin bs=1K seek=1088 conv=notrunc &&\
mkfs.jffs2 -s 0x100 -e 0x10000 --pad=0xAF0000 -d rootfs/ -o rootfs.jffs2 &&\
dd if=rootfs.jffs2 of=f1c100s_spiflash_16M.bin bs=1k seek=5184 conv=notrunc &&\
sync
(6)运行打包脚本
sudo sh BuildMyImage.sh
-----------------------------------------------
提示错误:
BuildMyImage.sh: 6: BuildMyImage.sh: mkfs.jffs2: not found
安装mtd-utils工具:
sudo apt-get install mtd-utils
安装过程中,有可能出现超时情况,多尝试几遍或者更换源试试。
-----------------------------------------------
继续运行打包脚本:
sudo sh BuildMyImage.sh
稍等片刻,打包便能完成。
打包完成后,在当前目录,生成一个名为f1c100s_spiflash_16M.bin的文件。
最近编辑记录 LinjieGuo (2019-11-04 00:55:16)
离线
7 烧写验证
(1)参考文章:https://whycan.cn/t_444.html
编译、安装Windows版本sunxi-fel步骤 (32M spi flash补丁,支持W25Q256/MX25L256)
安装好驱动,烧写bin文件到单板上。
(2)观察串口输出:
明显是存在问题,但是不知道问题出在哪里,太晚了,只能先睡觉。
最近编辑记录 LinjieGuo (2019-11-04 00:46:59)
离线
非常感谢晕哥的指导:
回到6.26.2 修改dts以适配spi flash
(1)修改源码
在uboot源码目录下 进入 ./include/configs/,修改 suniv.h
#define CONFIG_BOOTCOMMAND "sf probe 0 50000000; " \
"sf read 0x80C00000 0x100000 0x4000; " \
"sf read 0x80008000 0x110000 0x400000; " \
"bootz 0x80008000 - 0x80C00000"
重新编译uboot。
重新打包出bin文件,并烧写。
出现以下情况,很明显,还是存在问题,贴图,:
最近编辑记录 LinjieGuo (2019-11-04 21:10:10)
离线
再次感谢晕哥的指导:可能是CONFIG_MTD_BLOCK没有勾上。
在linux内核根目录: make ARCH=arm menuconfig
进入配置界面后:
按/
输入CONFIG_MTD_BLOCK
进行搜索,得到以下界面。
进入→ Device Drivers,发现 已经勾选上
<*> Memory Technology Device (MTD) support --->
回车进入Memory Technology Device (MTD) support --->
看着好像有关的选项都给勾选上。贴图:
继续回车进入 Self-contained MTD device drivers
看着好像有关的选项都给勾选上。贴图:
保存退出,继续编译。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
最近编辑记录 LinjieGuo (2019-11-04 23:22:40)
离线
编译完毕,打包后烧写bin文件。非常遗憾,结果依旧!
观察.config里的配置项
文件中,可以看出,MTD_BLOCK已经配置为y,但依然没能成功启动。
我怀疑也许是根文件系统配置的问题。夜深了,明日继续。
算了,还是再搞搞把,这么早休息实在没劲,继续折腾。
观察启动log,发现,卡住的地方,有一条记录: #0: Loopback 1
再次进入配置界面:make ARCH=arm menuconfig
Device Drivers --->Block devices --->
[v]Loopback device support,勾选,看到其他有的选项,也勾上吧,相信也无妨,贴图:
保存配置,继续编译。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
打包后烧录验证。
最近编辑记录 LinjieGuo (2019-11-04 23:44:30)
离线
夜已深,凭借着12线程的能力,很快就编译完成,打包烧录进单板上。
上电后,观察log,非常遗憾,唉,我要睡觉了。因为linux跑起来了...贴图:
在这紧要关头,我居然忘记了登陆账号密码,无奈之下,只能去buildroot目录下看看账号密码了。
make menuconfig
System configuration --->
贴图:
原来还没有设置密码,算了,真的要休息了,明日继续。
最近编辑记录 LinjieGuo (2019-11-05 00:04:40)
离线
@aaayao 这个文件下载失败: https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.12.10.tar.xz
你可以手动下载拷贝到 dl/ 目录。
是的,这个文件复制链接,用迅雷下载,非常快,十来秒就OK了。
离线
(3) 测试程序
既然linux已经能跑起来了,我们编写一个hello.c,编译看能否执行。
cd ./rootfs
vi hello.c
#include <stdio.h>
int main(void)
{
printf("hello whycan!\r\n");
return 0;
}
gcc编译:gcc -o hello hello.c
ubuntu中执行:./hello
输出:hello whycan!
编译到目标板:arm-linux-gnueabi-gcc -o Boardhello hello.c
因为现在没又什么方便得调试工具,直接打包进根文件系统。
sudo sh BuildMyImage.sh
烧录到spiflash中。
执行程序Boardhello。提示失败,如下图:
离线
xgui 说:双十一搬瓦工bwh可能有促销的VPS, 在这上面速度比起墙内快多了。克隆torvalds的Linux仓库最多1分钟搞定。
这个方法真好,在VPS上克隆真的非常的快啊!
https://whycan.cn/files/members/2261/QQ图片20191107090703.png
https://whycan.cn/files/members/2261/QQ图片20191107090823.png
https://whycan.cn/files/members/2261/QQ图片20191107082435.png但是要传回本地就非常的慢了,看来要在VPS上进行编译才行了。编译好之处只传回目标文件。
https://whycan.cn/files/members/2261/QQ图片20191107090158.png可惜现在的搬瓦工都没有以前19刀一年的了,最便宜都要49刀一年。
我的uboot是直接在腾讯云的服务器上面执行指令获取的,还算比较快,一下子就好了。
离线
楼主,你好:
按照你的连接下载的内核源码目录里没有 ./arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts 这个文件啊?
稍等,我先看看呢!我搜索了一下,这个文件是存在的,你是不是搞错了呢?dts目录下文件太多,网页里只能显示一部分文件的。
最近编辑记录 LinjieGuo (2019-11-07 18:17:53)
离线
我这个suniv-f1c100s-licheepi-nano.dts没有找到&spi0{...}段落,应该在那个位置加上去呢?
// SPDX-License-Identifier: (GPL-2.0+ OR X11) /* * Copyright 2018 Icenowy Zheng <icenowy@aosc.io> */ /dts-v1/; #include "suniv-f1c100s.dtsi" #include <dt-bindings/gpio/gpio.h> / { model = "Lichee Pi Nano"; compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s"; aliases { serial0 = &uart0; }; chosen { stdout-path = "serial0:115200n8"; }; panel: panel { compatible = "qiaodian,qd43003c0-40", "simple-panel"; #address-cells = <1>; #size-cells = <0>; enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>; power-supply = <®_vcc3v3>; port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; panel_input: endpoint@0 { reg = <0>; remote-endpoint = <&tcon0_out_lcd>; }; }; }; reg_vcc3v3: vcc3v3 { compatible = "regulator-fixed"; regulator-name = "vcc3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; }; &be0 { status = "okay"; }; &de { status = "okay"; }; &tcon0 { pinctrl-names = "default"; pinctrl-0 = <&lcd_rgb666_pins>; status = "okay"; }; &tcon0_out { tcon0_out_lcd: endpoint@0 { reg = <0>; remote-endpoint = <&panel_input>; }; }; &mmc0 { vmmc-supply = <®_vcc3v3>; bus-width = <4>; broken-cd; status = "okay"; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pe_pins>; status = "okay"; }; &otg_sram { status = "okay"; }; &usb_otg { dr_mode = "otg"; status = "okay"; }; &usbphy { usb0_id_det-gpio = <&pio 4 2 GPIO_ACTIVE_HIGH>; /* PE2 */ status = "okay"; };
其实你只要稍微观察一下就知道结构了。&xx{}都放在大括号外面。
最近编辑记录 LinjieGuo (2019-11-07 21:47:06)
离线
加在下面这个位置,但是编译出错了。
https://whycan.cn/files/members/2261/QQ图片20191107223200.png
// SPDX-License-Identifier: (GPL-2.0+ OR X11) /* * Copyright 2018 Icenowy Zheng <icenowy@aosc.io> */ /dts-v1/; #include "suniv-f1c100s.dtsi" #include <dt-bindings/gpio/gpio.h> / { model = "Lichee Pi Nano"; compatible = "licheepi,licheepi-nano", "allwinner,suniv-f1c100s"; aliases { serial0 = &uart0; }; chosen { stdout-path = "serial0:115200n8"; }; panel: panel { compatible = "qiaodian,qd43003c0-40", "simple-panel"; #address-cells = <1>; #size-cells = <0>; enable-gpios = <&pio 4 6 GPIO_ACTIVE_HIGH>; power-supply = <®_vcc3v3>; port@0 { reg = <0>; #address-cells = <1>; #size-cells = <0>; panel_input: endpoint@0 { reg = <0>; remote-endpoint = <&tcon0_out_lcd>; }; }; }; reg_vcc3v3: vcc3v3 { compatible = "regulator-fixed"; regulator-name = "vcc3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; }; &be0 { status = "okay"; }; &de { status = "okay"; }; &tcon0 { pinctrl-names = "default"; pinctrl-0 = <&lcd_rgb666_pins>; status = "okay"; }; &tcon0_out { tcon0_out_lcd: endpoint@0 { reg = <0>; remote-endpoint = <&panel_input>; }; }; &mmc0 { vmmc-supply = <®_vcc3v3>; bus-width = <4>; broken-cd; status = "okay"; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pe_pins>; status = "okay"; }; &otg_sram { status = "okay"; }; &usb_otg { dr_mode = "otg"; status = "okay"; }; &spi0 { pinctrl-names = "default"; pinctrl-0 = <&spi0_pins_a>; status = "okay"; spi-max-frequency = <50000000>; flash: w25q128@0 { #address-cells = <1>; #size-cells = <1>; compatible = "winbond,w25q128", "jedec,spi-nor"; reg = <0>; spi-max-frequency = <50000000>; partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "u-boot"; reg = <0x000000 0x100000>; read-only; }; partition@100000 { label = "dtb"; reg = <0x100000 0x10000>; read-only; }; partition@110000 { label = "kernel"; reg = <0x110000 0x400000>; read-only; }; partition@510000 { label = "rootfs"; reg = <0x510000 0xAF0000>; }; }; }; }; &usbphy { usb0_id_det-gpio = <&pio 4 2 GPIO_ACTIVE_HIGH>; /* PE2 */ status = "okay"; };
代码比较工具对比了一下,一模一样,我上我这边的源码给你看看把。能力有限,你多折腾几遍,/笑/哈
linux内核源码链接: https://pan.baidu.com/s/1YpbDNFXn_2QdTh8YIcF_jg 提取码:bc35
最近编辑记录 LinjieGuo (2019-11-07 23:45:47)
离线
8 编译裸机程序
获取大神网友(达克罗德)的项目:
帖子: https://whycan.cn/t_1457.html
8.1 获取裸机工程包
下载: https://whycan.cn/files/members/729/minimal_f1c100s_framebuffer.zip
上传到ubuntu的f1c100s目录下。
8.2 解压
unzip minimal_f1c100s_framebuffer.zip
8.3 编译
cd minimal_f1c100s
make
产生以下log:
-------------------------------------------------------
book@book-virtual-machine:~/f1c100s/minimal_f1c100s$ make
mkdir -p build/
mkdir -p build/arch/arm32/lib/
mkdir -p build/driver/
mkdir -p build/lib/
mkdir -p build/machine/
CC main.c
arm-eabi-gcc -Imachine/include -Iarch/arm32/include -Idriver/include -Ilib -march=armv5te -mtune=arm926ej-s -mfloat-abi=soft -marm -mno-thumb-interwork -g -ggdb -Wall -O3 -ffreestanding -std=gnu99 -D__ARM32_ARCH__=5 -D__ARM926EJS__ -c -MD -o build/main.o main.c
make: arm-eabi-gcc: Command not found
Makefile:104: recipe for target 'build/main.o' failed
make: *** [build/main.o] Error 127
book@book-virtual-machine:~/f1c100s/minimal_f1c100s$
-------------------------------------------------------
处理方法
(1)安装编译工具
sudo apt-get install gcc-arm-none-eabi
(2)修改Makefile
vi Makefile
修改"CROSS_COMPILE = arm-enbi-" --> "CROSS_COMPILE ?= arm-enbi-"
(3) 再次编译
CROSS_COMPILE=arm-none-eabi- make
看起来编译出bin文件了,但是仍然有提示错误。
-------------------------------------------------------
copy from `build/firmware.elf' [elf32-littlearm] to `build/firmware.bin' [binary]
Make header information for brom booting
make: execvp: tools/mksunxi/mksunxi: 权限不够
Makefile:73: recipe for target 'build/firmware.bin' failed
make: *** [build/firmware.bin] Error 127
-------------------------------------------------------
既然权限不够,就给他权限:
cd tools/mksunxi
sudo chmod 777 mksunxi
继续编译:
CROSS_COMPILE=arm-none-eabi- make
-------------------------------------------------------
book@book-virtual-machine:~/f1c100s/minimal_f1c100s$ CROSS_COMPILE=arm-none-eabi- make
arm-none-eabi-objcopy -v -O binary build/firmware.elf build/firmware.bin
copy from `build/firmware.elf' [elf32-littlearm] to `build/firmware.bin' [binary]
Make header information for brom booting
bootloader size= 1800
The bootloader head has been fixed
-------------------------------------------------------
8.4 烧写验证
离线
楼主,你的是NANO板子吗?FLASH是买回来就焊好的吗?
我这个是买回来要自己焊的FLASH,不知道硬件上会不会有问题?
https://whycan.cn/files/members/2261/QQ图片20191111160826.jpg
我这里有2个板子,自己做的,还有荔枝派nano,测试都是成功的呢。
离线
找到地方了,第五大步的第二小步得这样设置
https://whycan.cn/files/members/2409/_15749275588763.png
系统已经成功在F1C200S的板子上运行,现在开始纠结怎么联网。
不好意思,那时候还不知道怎么上图,/捂脸
离线
由于我不会在linux下烧程序到板子,我都是在windows下操作。所以我找了宿主机和客户机之间互换文件的方法,希望把编译的文件拿倒windows下烧写。具体方法见这个网页:https://www.cnblogs.com/sunev/archive/2012/03/16/2400887.html
方法很多:
(1)VMtools
(2)FTP/SFTP
(3)nfs,这个比较方便,编译完,win端刷新,写个bat命令脚本,使用sunxi-tools,相对路径烧写bin文件。
这方面的话,自行科普比较好一些。
离线
$ ls -lh output/images/
total 95M
-rw-r--r-- 1 ted ted 95M 1月 6 02:41 rootfs.tar大神指点一下,为什么我编出来的根文件系统有 95MB?
我是想烧录到16MB spiflash,解压出来发现 gdb 和 mplayer 占了几十M;
.config文件
可能我在写帖子时,忽略了一些东西取消了某些选项,晚点传配置文件上来
离线
可能我在写帖子时,忽略了一些东西取消了某些选项,晚点传配置文件上来
现在传上来。包里面存在两个文件".config"以及"config.in"
buildroot配置文件
下载后解包看看。
最近编辑记录 LinjieGuo (2020-01-07 10:25:57)
离线
编译根文件系统时候遇到问题了, 没想好怎么解决, 因为apt安装不了4.12版本的linux-header, 我是在ubuntu18.04的虚拟机中尝试编译的
zt@ubuntu:~/buildroot$ make >>> linux-headers custom Installing to staging directory (cd /home/zt/buildroot/output/build/linux-headers-custom; PATH="/home/zt/buildroot/output/host/bin:/home/zt/buildroot/output/host/sbin:/home/zt/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/zt/crosstool-ng:/home/zt/LicheePi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi/bin" /usr/bin/make -j5 ARCH=arm HOSTCC="/usr/bin/gcc" HOSTCFLAGS="" HOSTCXX="/usr/bin/g++" INSTALL_HDR_PATH=/home/zt/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr headers_install) make[1]: Entering directory '/home/zt/buildroot/output/build/linux-headers-custom' make[1]: Leaving directory '/home/zt/buildroot/output/build/linux-headers-custom' if ! support/scripts/check-kernel-headers.sh /home/zt/buildroot/output/host/arm-buildroot-linux-uclibcgnueabi/sysroot 4.12; then exit 1; fi Incorrect selection of kernel headers: expected 4.12.x, got 4.19.x package/pkg-generic.mk:266: recipe for target '/home/zt/buildroot/output/build/linux-headers-custom/.stamp_staging_installed' failed make: *** [/home/zt/buildroot/output/build/linux-headers-custom/.stamp_staging_installed] Error 1
恐怕让您失望了,我也不知道这是什么情况!/无奈
离线
谢谢楼主的分享,很详细。但是我在编译make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4的时候出现了
binman: Node '/binman/u-boot-img': Entry contents size is 0xa6fa9 (683945) but entry size is 0x7e000 (516096)
Makefile:1148: recipe for target 'u-boot-sunxi-with-spl.bin' failed
make: *** [u-boot-sunxi-with-spl.bin] Error 1
这个错误。我也不知道是什么原因,是之前配置可视化出错了吗?
你去打开Makefile文件,看看1148行驶什么内容呢
离线
感谢LinjieGuo分享,我是一个超级新手,以前全在windows上开发没怎么接触linux,最近画了个F1c200s想跟下linux,刚好过来跟楼主学一学。弄了两天终于把U-boot、linux-f1c100s-480272lcd-test和buildroot-2017.08三个编译完成。我PCB板上用的是32M的(w25q32),想问一下是不是把suniv-f1c100s-licheepi-nano.dts里配置为w25q32重新编译就可以?https://whycan.cn/files/members/2850/none.png
引用晕哥的话:"不用修改,驱动检测flash id自动识别容量!"
离线
麻烦请问,更新了dts之后,使用make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs -j4
始终无法在arch/arm/boot/dts/下生成suniv-f1c100s-licheepi-nano.dts为了保证dts是新生成的,我将旧的suniv-f1c100s-licheepi-nano.dts删除了,使用make命令再也无法生成dts了。
折腾了两天了,感谢大神帮助。
把提示截屏放上来看看。
离线
下载 sunxi-tools-win32support_f1c100s(20180329).7z,解压缩, 运行 zadig-2.3.exe
点击 Options -> List All Devices:(即使你的设备显示未识别设备也可以,只要装上驱动能下载就可以了)
https://whycan.cn/files/members/3/QQ20180416161704.png
选择 WinUSB (v6.1.7600.16385)
点击 【Install WCID Driver】
https://whycan.cn/files/members/3/QQ20180416161712.png
按上面步奏装好驱动
https://whycan.cn/files/members/3/QQ20180416161717.png
装完后,sunxi-fel.exe 运行一切正常。
接下来烧录一个spi flash试一试。
最近编辑记录 LinjieGuo (2020-03-29 14:34:22)
离线
按照步骤试了 还是不行
https://whycan.cn/files/members/2435/qqq.png
基本操作呢,可以关掉杀毒软件再试试,不行就换个电脑试试。
离线
大佬有没有RTT的教程呢?
RTT教程没有,但是开源加群交流,QQ群686338051
不是我的群,加不进不关我事喔。
不过其实很简单。开发流程是这样:
(1)下载ENV并安装,参考链接如下:
①ENV使用教程:
https://www.rt-thread.org/page/video.html
②ENV下载:
https://www.rt-thread.org/page/download.html
自己进去找,很容易找到的。
(2)下载RTT官方源码:
①官方下载页:
https://www.rt-thread.org/page/download.html
②git页面:
https://github.com/RT-Thread/rt-thread
使用歪朵拉的加速服务下载git:
https://g.widora.cn/
(3)直接在win下解压RTT,使用ENV进入RTT_3_1_3\bsp\allwinner_tina\
(4)输入scons进行编译。(注意,只能直接编译,不能像STM32一样建议keil工程)
(5)其余自行参考这个帖子的最终结果。
https://whycan.cn/t_3877.html
最近编辑记录 LinjieGuo (2020-04-30 23:52:39)
离线
系统启动了,但是发现f1c200s暂时成了一个孤岛,没有网口,没有usb,
大家是怎么把测试软件、文件上传到正在f1c200s里运行的文件系统里的?
解决你的孤岛问题:https://whycan.cn/t_4266.html
离线
系统启动了,但是发现f1c200s,没有网口,没有usb,持续观望学习中。
离线
MMC: SUNXI SD/MMC: 0 SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB *** Warning - bad CRC, using default environment Setting up a 480x272 lcd console (overscan 0x0) In: serial@1c25000 Out: serial@1c25000 Err: serial@1c25000 Net: No ethernet found. starting USB... No controllers found Hit any key to stop autoboot: 0 SF: Detected w25q128 with page size 256 Bytes, erase size 4 KiB, total 16 MiB device 0 offset 0x100000, size 0x4000 SF: 16384 bytes @ 0x100000 Read: OK device 0 offset 0x110000, size 0x400000 SF: 4194304 bytes @ 0x110000 Read: OK ## Flattened Device Tree blob at 80c00000 Booting using the fdt blob at 0x80c00000 Loading Device Tree to 80e05000, end 80e0a3b5 ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 5.2.0-licheepi-nano+ (zjf@book-virtual-machine) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #10 Mon May 18 01:03:16 CST 2020 [ 0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=0005317f [ 0.000000] CPU: VIVT data cache, VIVT instruction cache [ 0.000000] OF: fdt: Machine model: Lichee Pi Nano [ 0.000000] Memory policy: Data cache writeback [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 8128 [ 0.000000] Kernel command line: console=ttyS0,115200 panic=5 rootwait root=/dev/mtdblock3 rw rootfstype=jffs2 [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Memory: 22696K/32768K available (6144K kernel code, 233K rwdata, 1472K rodata, 1024K init, 228K bss, 10072K reserved, 0K cma-reserved, 0K highmem) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16 [ 0.000000] random: get_random_bytes called from start_kernel+0x254/0x42c with crng_init=0 [ 0.000047] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns [ 0.000127] clocksource: timer: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns [ 0.000709] Console: colour dummy device 80x30 [ 0.000807] Calibrating delay loop... 203.16 BogoMIPS (lpj=1015808) [ 0.070245] pid_max: default: 32768 minimum: 301 [ 0.070674] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.070714] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) [ 0.072400] CPU: Testing write buffer coherency: ok [ 0.074424] Setting up static identity map for 0x80100000 - 0x80100058 [ 0.076719] devtmpfs: initialized [ 0.084396] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.084457] futex hash table entries: 256 (order: -1, 3072 bytes) [ 0.084767] pinctrl core: initialized pinctrl subsystem [ 0.086849] NET: Registered protocol family 16 [ 0.088278] DMA: preallocated 256 KiB pool for atomic coherent allocations [ 0.090494] cpuidle: using governor menu [ 0.144032] SCSI subsystem initialized [ 0.144444] usbcore: registered new interface driver usbfs [ 0.144604] usbcore: registered new interface driver hub [ 0.144792] usbcore: registered new device driver usb [ 0.145298] pps_core: LinuxPPS API ver. 1 registered [ 0.145324] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.145850] Advanced Linux Sound Architecture Driver Initialized. [ 0.147573] clocksource: Switched to clocksource timer [ 0.178726] NET: Registered protocol family 2 [ 0.180294] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes) [ 0.180374] TCP established hash table entries: 1024 (order: 0, 4096 bytes) [ 0.180435] TCP bind hash table entries: 1024 (order: 0, 4096 bytes) [ 0.180483] TCP: Hash tables configured (established 1024 bind 1024) [ 0.180774] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.180835] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.181346] NET: Registered protocol family 1 [ 0.183860] NetWinder Floating Point Emulator V0.97 (double precision) [ 0.186019] Initialise system trusted keyrings [ 0.186614] workingset: timestamp_bits=30 max_order=13 bucket_order=0 [ 0.207933] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.214559] Key type asymmetric registered [ 0.214596] Asymmetric key parser 'x509' registered [ 0.214781] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) [ 0.214808] io scheduler mq-deadline registered [ 0.214825] io scheduler kyber registered [ 0.227429] suniv-f1c100s-pinctrl 1c20800.pinctrl: initialized sunXi PIO driver [ 0.421545] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled [ 0.427394] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pe not found, using dummy regulator [ 0.429331] printk: console [ttyS0] disabled [ 0.449598] 1c25000.serial: ttyS0 at MMIO 0x1c25000 (irq = 25, base_baud = 6250000) is a 16550A [ 0.829064] printk: console [ttyS0] enabled [ 0.837489] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator [ 0.889606] brd: module loaded [ 0.913898] loop: module loaded [ 0.918114] SCSI Media Changer driver v0.25 [ 0.923707] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pc not found, using dummy regulator [ 0.936693] m25p80 spi0.0: w25q128 (16384 Kbytes) [ 0.942461] 4 fixed-partitions partitions found on MTD device spi0.0 [ 0.948941] Creating 4 MTD partitions on "spi0.0": [ 0.953754] 0x000000000000-0x000000100000 : "u-boot" [ 0.962681] 0x000000100000-0x000000110000 : "dtb" [ 0.971157] 0x000000110000-0x000000510000 : "kernel" [ 0.979945] 0x000000510000-0x000001000000 : "rootfs" [ 0.989196] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 0.995727] ehci-platform: EHCI generic platform driver [ 1.001387] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 1.007714] ohci-platform: OHCI generic platform driver [ 1.013380] usbcore: registered new interface driver usb-storage [ 1.021215] input: 1c23400.lradc as /devices/platform/soc/1c23400.lradc/input/input0 [ 1.030119] i2c /dev entries driver [ 1.037778] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pf not found, using dummy regulator [ 1.075933] sunxi-mmc 1c0f000.mmc: initialized, max. request size: 16384 KB [ 1.085407] usbcore: registered new interface driver usbhid [ 1.091109] usbhid: USB HID core driver [ 1.111993] NET: Registered protocol family 17 [ 1.116556] Key type dns_resolver registered [ 1.123402] Loading compiled-in X.509 certificates [ 1.138698] suniv-f1c100s-pinctrl 1c20800.pinctrl: 1c20800.pinctrl supply vcc-pd not found, using dummy regulator [ 1.150125] sun4i-backend 1e60000.display-backend: Couldn't find matching frontend, frontend features disabled [ 1.160956] sun4i-drm display-engine: bound 1e60000.display-backend (ops 0xc0738094) [ 1.170036] sun4i-drm display-engine: bound 1c0c000.lcd-controller (ops 0xc0736cec) [ 1.177818] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). [ 1.184421] [drm] No driver support for vblank timestamp query. [ 1.191734] [drm] Initialized sun4i-drm 1.0.0 20150629 for display-engine on minor 0 [ 1.249948] Console: switching to colour frame buffer device 60x34 [ 1.273157] sun4i-drm display-engine: fb0: sun4i-drmdrmfb frame buffer device [ 1.281268] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 1.299447] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ 1.306225] vcc5v0: disabling [ 1.309331] ALSA device list: [ 1.312362] #0: Loopback 1 [ 1.316260] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2 [ 1.324988] cfg80211: failed to load regulatory.db [ 1.331966] VFS: Cannot open root device "mtdblock3" or unknown-block(31,3): error -19 [ 1.340000] Please append a correct "root=" boot option; here are the available partitions: [ 1.348483] 0100 4096 ram0 [ 1.348493] (driver?) [ 1.354603] 0101 4096 ram1 [ 1.354607] (driver?) [ 1.360782] 0102 4096 ram2 [ 1.360788] (driver?) [ 1.366930] 0103 4096 ram3 [ 1.366936] (driver?) [ 1.373097] 0104 4096 ram4 [ 1.373104] (driver?) [ 1.379281] 0105 4096 ram5 [ 1.379288] (driver?) [ 1.385390] 0106 4096 ram6 [ 1.385395] (driver?) [ 1.391552] 0107 4096 ram7 [ 1.391557] (driver?) [ 1.397725] 0108 4096 ram8 [ 1.397733] (driver?) [ 1.403834] 0109 4096 ram9 [ 1.403838] (driver?) [ 1.410010] 010a 4096 ram10 [ 1.410017] (driver?) [ 1.416240] 010b 4096 ram11 [ 1.416246] (driver?) [ 1.422489] 010c 4096 ram12 [ 1.422495] (driver?) [ 1.428728] 010d 4096 ram13 [ 1.428735] (driver?) [ 1.434952] 010e 4096 ram14 [ 1.434958] (driver?) [ 1.441203] 010f 4096 ram15 [ 1.441210] (driver?) [ 1.447434] 1f00 1024 mtdblock0 [ 1.447441] (driver?) [ 1.454031] 1f01 64 mtdblock1 [ 1.454037] (driver?) [ 1.460617] 1f02 4096 mtdblock2 [ 1.460622] (driver?) [ 1.467188] 1f03 11200 mtdblock3 [ 1.467194] (driver?) [ 1.473780] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3) [ 1.482120] CPU: 0 PID: 1 Comm: swapper Not tainted 5.2.0-licheepi-nano+ #10 [ 1.489147] Hardware name: Allwinner suniv Family [ 1.493902] [<c010e478>] (unwind_backtrace) from [<c010ba5c>] (show_stack+0x10/0x14) [ 1.501647] [<c010ba5c>] (show_stack) from [<c0116db4>] (panic+0xe8/0x2e4) [ 1.508529] [<c0116db4>] (panic) from [<c090129c>] (mount_block_root+0x1ec/0x2e0) [ 1.516006] [<c090129c>] (mount_block_root) from [<c09016bc>] (prepare_namespace+0x158/0x1b8) [ 1.524536] [<c09016bc>] (prepare_namespace) from [<c065a670>] (kernel_init+0x8/0x110) [ 1.532452] [<c065a670>] (kernel_init) from [<c01010e0>] (ret_from_fork+0x14/0x34) [ 1.540000] Exception stack(0xc1831fb0 to 0xc1831ff8) [ 1.545051] 1fa0: 00000000 00000000 00000000 00000000 [ 1.553218] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 1.561382] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 1.567993] Rebooting in 5 seconds.. [ 7.547227] Reboot failed -- System halted
博主好,请问我这个好像是没有识别到mtd这个是啥原因,MTD有打开的
CONFIG_MTD_BLKDEVS=y
CONFIG_MTD_BLOCK=y
CONFIG_FTL=y
CONFIG_RFD_FTL=y
CONFIG_MTD_SWAP=y
试一下这个:
观察启动log,发现,卡住的地方,有一条记录: #0: Loopback 1
再次进入配置界面:make ARCH=arm menuconfig
Device Drivers --->Block devices --->
[v]Loopback device support,勾选,看到其他有的选项,也勾上吧,相信也无妨......
上门有这个错误记录,回去看看。不知道是否为这个原因。
最近编辑记录 LinjieGuo (2020-05-18 10:22:55)
离线
您好 http://dl.sipeed.com/LICHEE/Nano/SDK/config 这个config文件请问能分享下么?今天上这个发现config文件下不了。。跟着教程走不下去了。。
稍等,我传上来
https://whycan.cn/files/members/1845/config_ok.zip
下载文件,解压zip包,然后将config_ok复制为.config文件就可以了
最近编辑记录 LinjieGuo (2020-05-20 09:45:45)
离线
能不能把那个交叉编译工具链转发一下,下了一天都没有弄下来,好麻烦
离线
换了这个工具链运行的时候显示段错误了,只是写了个helloworld
# ./hello
Segmentation fault
需要的动态库也移植了
wings@ubuntu:~/Lichee/opt$ ./compile.sh
NEEDED libc.so.0
不知道咋回事啊
使用buildroot里面的交叉编译工具链。参考这篇文章:
https://whycan.cn/t_4266.html
最近编辑记录 LinjieGuo (2020-06-12 15:01:45)
离线
LinjieGuo暈哥
virtual machine setting-->hard ware-->processors-->
12*cpu-->8*cpu-->ok
open ubuntu 64.vmx-->Install Tools......
(PM 5:00-->10:00 )任务管理噐-->不允许, 12*cpu,
在VMWare里改没有用, 你的已配置环境work.zip移植不了.
看看是不是你的虚拟机软件版本问题呢,我使用得是很旧的VM 12Pro
离线
请教个问题,按照楼主LinjieGuo的方法编译hello.c,用的楼主的buildroot,为啥出现下列问题:
qsv@ubuntu:~/rootfs$ ../buildroot-2017.08/output/host/bin/arm-linux-gcc -o Boardhello hello.c
/home/qsv/buildroot-2017.08/output/host/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.27' not found (required by /home/qsv/buildroot-2017.08/output/host/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/6.4.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld)
collect2: error: ld returned 1 exit status
我也不知道。得你自己琢磨一下了。
离线
楼主:
我编译内核的时候会报错,
在ubuntu 和centos下都试过, 网上说更新ubuntu的内核到其他版本可以解决,试过好几个版本也都一样,你们编译没遇到这个问题吗?
make[1]: *** 正在等待未完成的任务....
In file included from ./include/linux/string.h:6:0,
from ./include/uapi/linux/uuid.h:22,
from ./include/linux/uuid.h:19,
from ./include/linux/mod_devicetable.h:13,
from scripts/mod/devicetable-offsets.c:3:
./include/linux/compiler.h:242:10: fatal error: asm/barrier.h: 没有那个文件或目录
#include <asm/barrier.h>
^~~~~~~~~~~~~~~
compilation terminated.
scripts/Makefile.build:150: recipe for target 'scripts/mod/devicetable-offsets.s' failed
make[2]: *** [scripts/mod/devicetable-offsets.s] Error 1
make[2]: *** 正在等待未完成的任务....
scripts/Makefile.build:575: recipe for target 'scripts/mod' failed
make[1]: *** [scripts/mod] Error 2
Makefile:556: recipe for target 'scripts' failed
make: *** [scripts] Error 2
root@sechfly-All-Series:/mnt/home/sechfly/samba/F1C100S/Code/linux-f1c100s-480272lcd-test#
root@sechfly-All-Series:/mnt/home/sechfly/samba/F1C100S/Code/linux-f1c100s-480272lcd-test#
root@sechfly-All-Series:/mnt/home/sechfly/samba/F1C100S/Code/linux-f1c100s-480272lcd-test#
没有遇到过这种问题呢!兄弟你要自己琢磨一下了。是不是文件没拉齐全
离线
应该是是缺库,用静态链接,一般没有问题。
编译命令行加 -static 能不能跑?
如果是缺少库,参考这篇文章,把相关的库文件复制过来。
https://whycan.cn/t_4266.html
最近编辑记录 LinjieGuo (2021-01-12 11:22:41)
离线
大佬 我到这步卡住了
记录了16+0 的读入
记录了16+0 的写出
16777216 bytes (17 MB, 16 MiB) copied, 0.0912342 s, 184 MB/s
记录了984+0 的读入
记录了984+0 的写出
1007616 bytes (1.0 MB, 984 KiB) copied, 0.0097831 s, 103 MB/s
记录了7+1 的读入
记录了7+1 的写出
7999 bytes (8.0 kB, 7.8 KiB) copied, 0.000651522 s, 12.3 MB/s
记录了3800+1 的读入
记录了3800+1 的写出
3891312 bytes (3.9 MB, 3.7 MiB) copied, 0.0505016 s, 77.1 MB/s
mkfs.jffs2: error!: rootfs/
error 2 (No such file or directory)
两个错误
不知怎么办了,。,LinjieGuo 说:6 打包出烧写spi flash的bin文件
先将已经被解压过的文件,统统存放在一个文件夹里,防止干扰视线。
....
用root用户看看,sudo -i,切换到root用户。
离线
你好 请问这里 选择分支:点击Branch->f1c100s-480272 480272 这个版本和屏幕有关系吗? 分支里只有f1c100s-480272lcd-test 我的屏幕时800*480 也用这个分支吗?
LinjieGuo 说:4 编译linux内核
4.1 获取linux内核源码
(1)打开链接:https://github.com/Icenowy/linux.git
...成功编译,生成的 zImage 在 arch ‣ arm ‣ boot 目录下
离线
看看14楼的内容,是否勾选上了。
http://whycan.com/t_3138.html#p26711
最近编辑记录 LinjieGuo (2021-01-13 17:32:03)
离线
你好 linjie 按上面的检查了一遍 都一样 还是卡在那
LinjieGuo 说:看看14楼的内容,是否勾选上了。
http://whycan.com/t_3138.html#p26711
唯有召唤无所不能的晕哥出场了。
离线
你好,Linjie :
我的液晶屏是800✖️480。
在哪边修改?LinjieGuo 说:LinuxGo 说:楼主,helloword出来了,接上液晶,液晶不正常。
Uboot启动时液晶是正常显示了个小企鹅。
文件系统全部加载完后液晶就不正常了。
这改哪边呀?你接的LCD分辨率多少呢
离线
编译出来,根文件系统,尺寸大的话,参考这几层的回复。
解决方法:把QT和一些没用到的库取消勾选就好了。
下面的几层回复,没有组织好,但是你要的答案,确实在里面。
http://whycan.com/t_3138.html#p31496
http://whycan.com/t_3138.html#p31627
http://whycan.com/t_3138.html#p36643
最近编辑记录 LinjieGuo (2021-01-18 16:43:44)
离线
楼主请问我在编译根文件系统时,出现了这个问题,该怎么解决
freadahead.c: In function 'freadahead':
freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
92 | #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
| ^~~~~
CC fseek.o
CC fseeko.o
make[5]: *** [Makefile:1915: freadahead.o] Error 1
make[5]: *** Waiting for unfinished jobs....
fseeko.c: In function 'rpl_fseeko':
fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
110 | #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
| ^~~~~
make[5]: *** [Makefile:1915: fseeko.o] Error 1
make[4]: *** [Makefile:1674: all] Error 2
make[3]: *** [Makefile:1572: all-recursive] Error 1
make[2]: *** [Makefile:1528:all] 错误 2
make[1]: *** [package/pkg-generic.mk:230:/home/windovo/buildroot-2017.08/output/build/host-m4-1.4.18/.stamp_built] 错误 2
make: *** [Makefile:79:_all] 错误 2
可能是源码没有完整下载导致的。
或者是c库没选对。
最近编辑记录 LinjieGuo (2021-03-13 10:17:20)
离线
[ 0.952845] Creating 4 MTD partitions on "spi0.0":
[ 0.957800] 0x000000000000-0x000000100000 : "u-boot"
[ 0.966748] rfd_ftl: no RFD magic found in 'u-boot'
[ 0.973911] ftl_cs: FTL header not found.
[ 0.979699] 0x000000100000-0x000000210000 : "dtb"
[ 0.988407] rfd_ftl: no RFD magic found in 'dtb'
[ 0.995293] ftl_cs: FTL header not found.
[ 1.000986] 0x000000110000-0x000000620000 : "kernel"
[ 1.019761] rfd_ftl: no RFD magic found in 'kernel'
[ 1.027133] ftl_cs: FTL header not found.
[ 1.032773] 0x000000510000-0x000001000000 : "rootfs"
[ 1.066081] rfd_ftl: no RFD magic found in 'rootfs'
[ 1.073276] ftl_cs: FTL header not found.奇怪,这是什么错误?
我也不知道,要请教一下晕哥了
离线
@LinjieGuo
这个文件是要烧写到哪个地址呢,是地址0吗,我把下面提供的虚拟机里的bin文件烧录到0地址结果出现和你第一次报错一样的错误,但是suniv.h已经是删过冒号的了。
https://whycan.com/files/members/6074/微信截图_20220310161208.png
兄弟你的Flash是什么型号呢?
离线
请教一下大佬,这个最后一步烧入bin文件到单板上怎么烧入的,有没有详细步骤。
教程在晕哥这个链接
编译、安装Windows版本sunxi-fel步骤 (32M spi flash补丁,支持W25Q256/MX25L256)
https://whycan.com/t_444.html#p1130
离线
楼主能出一个配置adb的教程吗,配置了usb后不知道咋操作了,传不了文件
参考这一篇,可以用串口直接传文件
https://whycan.com/t_4266.html
离线