1 环境部署

  • [x] Ubuntu 18.04
  • [x] Wine 3.0.4

1.0 查看CPU信息

lscpu
序号 属性 描述
1 架构 x86_64
2 CPU 运行模式 32-bit, 64-bit
3 字节序 Little Endian
4 CPU 4
5 在线 CPU 列表 0-3
6 每个核的线程数 1
7 每个座的核数 4
8 1
9 NUMA 节点 1
10 厂商 ID GenuineIntel
11 CPU 系列 6
13 型号 158
14 型号名称 Intel(R) Core(TM) i5-7400 CPU @ 3.00GHz
15 步进 9
16 CPU MHz 2748.422
17 CPU 最大 MHz 3500.0000
18 CPU 最小 MHz 800.0000
19 BogoMIPS 6000.00
20 虚拟化 VT-x
21 L1d 缓存 32K
22 L1i 缓存 32K
23 L2 缓存 256K
24 L3 缓存 6144K
25 NUMA 节点0 CPU 0-3

1.2 Wine环境

# 添加i386架构
sudo dpkg --add-architecture i386
# 安装64位wine
sudo apt install wine64
# 添加wineHQ签名密钥
wget -qO- https://dl.winehq.org/wine-builds/Release.key | sudo apt-key add -
# 添加存储库
sudo apt-add-repository 'deb http://dl.winehq.org/wine-builds/ubuntu/ artful main'

2 “安装”MDK

(1)将Win下安装的MDK文件,打包压缩,传送到Ubuntn;

(2)安装Pack,将MDK文件夹Pack中的.Download下载的pack文件离线安装;

(3)Ubuntu显示隐藏文件Ctrl+H;

(4)μVision⇒ Project⇒ Manage⇒ Pack Installer⇒ File⇒ Import⇒ Keil.STM32F1xx_DFP.1.0.5.pdsc;

(5)重启μVision即可新建工程;

3 问题

3.1 不能编译

--- Error: failed to execute '\home\xdq\install\MD\Kmdk514\core\ARM\ARMCC\Bin\ArmCC'

没有指定ARMCC

依次打开:

Project-->Manage-->Compoments,Books-->Folders/Extensions

图3.1 设置路径

3.2 编译错误

【Ubuntu源文件修改】

error You are building kernel with non-retpoline compiler, please update your compiler
make -C /lib/modules/4.15.0-50-generic/build  M=/home/xdq/install/Drivers/CH341SER_LINUX
make[1]: 进入目录“/usr/src/linux-headers-4.15.0-50-generic”
arch/x86/Makefile:252: *** 分隔符缺失 (你大概想用 TAB,而不是八个空格)。 停止。
make[1]: 离开目录“/usr/src/linux-headers-4.15.0-50-generic”
Makefile:5: recipe for target 'default' failed
make: *** [default] Error 2

【进入】

/usr/src/$(uname -r)/arch/x86

【打补丁】

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index f5d7f41..75ef499 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -220,9 +220,6 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables # Avoid indirect branches in kernel to deal with Spectre
ifdef CONFIG_RETPOLINE
-ifeq ($(RETPOLINE_CFLAGS),)
- $(error You are building kernel with non-retpoline compiler, please update your compiler.)
-endif
KBUILD_CFLAGS += $(RETPOLINE_CFLAGS)
endif @@ -307,6 +304,13 @@ ifndef CC_HAVE_ASM_GOTO
@echo Compiler lacks asm-goto support.
@exit 1
endif
+ifdef CONFIG_RETPOLINE
+ifeq ($(RETPOLINE_CFLAGS),)
+ @echo "You are building kernel with non-retpoline compiler." >&2
+ @echo "Please update your compiler." >&2
+ @false
+endif
+endif

【下载文件修改】

make -C /lib/modules/4.15.0-50-generic/build  M=/home/xdq/install/Drivers/CH341SER_LINUX
make[1]: 进入目录“/usr/src/linux-headers-4.15.0-50-generic”
CC [M] /home/xdq/install/Drivers/CH341SER_LINUX/ch34x.o
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c: 在函数‘ch34x_close’中:
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:591:2: 错误:未知的类型名‘wait_queue_t’
wait_queue_t wait;
^~~~~~~~~~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:591:15: 警告:未使用的变量‘wait’ [-Wunused-variable]
wait_queue_t wait;
^~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:590:7: 警告:未使用的变量‘timeout’ [-Wunused-variable]
long timeout;
^~~~~~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:589:6: 警告:未使用的变量‘bps’ [-Wunused-variable]
int bps;
^~~
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c: 在函数‘wait_modem_info’中:
/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.c:797:7: 错误:隐式声明函数‘signal_pending’ [-Werror=implicit-function-declaration]
if( signal_pending(current) )
^~~~~~~~~~~~~~
cc1:有些警告被当作是错误
scripts/Makefile.build:337: recipe for target '/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.o' failed
make[2]: *** [/home/xdq/install/Drivers/CH341SER_LINUX/ch34x.o] Error 1
Makefile:1552: recipe for target '_module_/home/xdq/install/Drivers/CH341SER_LINUX' failed
make[1]: *** [_module_/home/xdq/install/Drivers/CH341SER_LINUX] Error 2
make[1]: 离开目录“/usr/src/linux-headers-4.15.0-50-generic”
Makefile:5: recipe for target 'default' failed
make: *** [default] Error 2

注释或删除:wait_queue_t,long timeout,int bps

添加头文件: #include <linux/sched/signal.h>


[参考文献]

1 https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=25896d073d8a0403b07e6dec56f58e6c33678207

2 https://blog.csdn.net/nuttiny/article/details/79842900

3 https://blog.csdn.net/jazzsoldier/article/details/70170466

4 http://www.wch.cn/download/CH341SER_LINUX_ZIP.html

Ubuntu安装MDK的更多相关文章

  1. Mac OS、Ubuntu 安装及使用 Consul

    Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...

  2. ubuntu安装mysql

    好记性不如烂笔头,记录一下,ubuntu安装mysql的指令. 安装MySQL: sudo apt-get install mysql-server sudo apt-get install mysq ...

  3. ubuntu安装vim时提示 没有可用的软件包 vim,但是它被其它的软件包引用了 解决办法

    ubuntu安装vim时提示 没有可用的软件包 vim-gtk3,但是它被其它的软件包引用了 解决办法 本人在ubuntu系统安装vim  输入 sudo apt-get install vim 提示 ...

  4. docker 1.8+之后ubuntu安装指定版本docker-engine

    这边记录ubuntu安装过程,首先是官网文档 If you haven’t already done so, log into your Ubuntu instance. Open a termina ...

  5. debian/ubuntu安装桌面环境

    apt-get install xorg apt-get install gnome 然后startx ubuntu 安装Gnome桌面 1.安装全部桌面环境,其实Ubuntu系列桌面实际上有几种桌面 ...

  6. 一个ubuntu phper的自我修养(ubuntu安装)

    ubuntu安装篇 一.ubuntu下载 到ubuntu官网下载适合自己电脑配置的系统版本,此处不做展开. 二.制作USB启动盘 在windows下制作USB启动盘,工具是universal usb ...

  7. ubuntu 安装JAVA jdk的两种方法:

    ubuntu 安装jdk 的两种方式: 1:通过ppa(源) 方式安装. 2:通过官网下载安装包安装. 这里推荐第1种,因为可以通过 apt-get upgrade 方式方便获得jdk的升级 使用pp ...

  8. [其他]Ubuntu安装genymotion后unable to load VirtualBox engine

    问题: Ubuntu安装genymotion后unable to load VirtualBox engine 解决办法: 如果没有安装VirtualBox,要先安装VirtualBox. 安装Vir ...

  9. Ubuntu安装出现左上角光标一直闪解决方式

    Ubuntu安装出现左上角光标一直闪解决方式: 01下载ubunu http://cn.ubuntu.com/download/ 02.软碟通 http://pan.baidu.com/s/1qY8O ...

随机推荐

  1. day71_10_16多表断关联

    ---恢复内容开始--- 本次环境: 配置settings INSTALLED_APPS = [ # ... 'rest_framework', ] DATABASES = { 'default': ...

  2. Django框架、HTTP协议、文件配置、路由设置、

    1.socket服务端.py import socketsk = socket.socket()sk.bind(("127.0.0.1",8000))sk.listen()whil ...

  3. zz“老司机”成长之路:自动驾驶车辆调试实践

    随着自动驾驶技术的发展,一辆新车从被改装到上路需要经过的调试流程也有了许多提升.今天,我希望结合自己之前的调车经验来跟大家分享一下我们是如何将系统的各个模块逐步上车.调试.集成,进而将一辆“新手”车培 ...

  4. Java并发编程核心知识体系精讲

    第1章 开宗明义[不看错过一个亿]本章一连串设问:为什么学并发编程?学并发编程痛点?谁适合学习本课?本课程包含内容和亮点?首先4大个理由告诉你为什么要学,其实源于JD岗位要求就不得不服了.其次5个痛点 ...

  5. C语言中,如何输出一个菱形!

    int zh,zl,h,l;                                                  //zh:行的总数 zl:列的总数  h:当前行  l:当前列 for( ...

  6. Emgucv 4 下载、安装、配置

    1.下载.安装 过程可查看之前Emgucv 3的说明:https://www.cnblogs.com/doget/p/7776377.html 安装完成后,安装目录下会生成如下文件及文件夹: 2.配置 ...

  7. 【Zabbix】zabora批量部署

    zabora简化批量部署 目的:简化部署zabora,批量监控数据库的常用指标 1 数据库用户赋权 上传cre_arp_monitor.sh,并且部署用户. [root@oradb ~]# chown ...

  8. Elasticsearch搜索调优权威指南 (1/3)

    本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/qwkZKLb_ghmlwrqMkqlb7Q英文原文:https://qbox.io/blog/ela ...

  9. Chrome 手动安装.crx插件

    在网上自己下载.crx的离线插件文件.或者通过朋友打包.crx文件.打包方式可参照Chrome 打包扩展程序 方法一: 打开Chrome浏览器,地址栏输入 chrome://extensions/ 将 ...

  10. ubuntu18.04.2下编译openjdk9源码

    最近在看<深入理解Java虚拟机 第二版>这本书,上面有关于自己编译OpenJDK源码的内容.自己根据书里的指示去操作,花了三天的时间,重装了好几次Ubuntu(还不知道快照这个功能,好傻 ...