废话:它其实是想知道当年编译这个交叉编译器的内核的版本(不要问我上一个交叉编译器的版本)。
External toolchain kernel headers series = 4.20.x //交叉编译器的linux 版本号
这个版本号 指的不是即将编译的Linux内核的版本号 而是指的是当初编译这个编译工具的Linux内核版本号
这个版本号去哪里找呢?
找到编译工具链的目录,然后使用下述命令来找
find . |grep version.h
比如这个 ./arm-none-linux-gnueabihf/libc/usr/include/linux/version.h
用vim打开这个文件,得到
#define LINUX_VERSION_CODE 267277
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))
267277是十进制的,变成16进制是 0x4140D 分割成3组是0x04 0x14 0x0D 写成十进制表示则是 4.20.13
结贴,找到原因了
具体原因就是,驱动没安装好。
根绝哇酷小二的说法,我去搞了一下Windows版本的,结果还是嗝屁
就照着那个帖子里说的,要装好驱动才能玩呀。就想办法去下载那个Zadig过来安装驱动。
。。。。就好了。
我用的是VMware跑的Ubuntu 18.04
从xboot的Git那里下载的源码
使用的Xuantie-900-gcc-elf-newlib-x86_64-V2.2.4的交叉编译链
照着xboot手册去编译源码(前提你得先到那个文件夹里)
make clean
make CROSS_COMPLIE=riscv64-unknown-elf- PLATFORM=riscv64-d1
编译是通过的,也能在output目录下找到生成的文件。
然后就想下载来看看。
手上有一个麻雀V1.5的板子。
Doc上说:
sudo xfel ddr d1; sudo xfel write 0x40000000 xboot.bin; sudo xfel exec 0x40000000;
就可以了。
我一脸懵逼,板子总得插到电脑上吧,插哪个口呀?插上去就能玩?不用别的骚操作?
捣鼓了一波:usb 接口插到麻雀的OTG接口去,按住FEL按键上电,电脑就会开始识别到USB设备接入......但是芭比Q了,安装驱动失败。
不管,到虚拟机那里,看到有一个奇怪的Onda USB device,应该是这个东西吧,选择连到虚拟机去。
再来输入命令:
sudo xfel ddr d1
电脑显示
Initial ddr controller suceeded
激动了一波,这是成了?
接着输入
sudo xfel write 0x40000000 xboot.bin
嗝屁了
显示
usb bulk send error
然后就玩不下去了。
有大佬遇到过的吗?
给小弟指条明路。
有一个有疑惑的地方,可能是usb驱动的问题。xfel的Git那里提到:在编译之前,先安装一个libusb-1.0-0-dev.但是在我安装这个东西的时候,有提示“这个东西比较老了,推荐你安装XXXX”,但是当时没注意它,还是强行选择安装libusb-1.0-0-dev